Session ist eine Methode zum Speichern des Sitzungsstatus von Benutzern und Webanwendungen. In diesem Artikel wird hauptsächlich die Verwendung von Session in Asp.net Core vorgestellt Erfahren Sie mehr darüber,
Vorwort
2017 begann ruhig und 2017 ist ein weiteres besonders wichtiges Jahr für mich.
Ich habe zu Hause während der Neujahrsfeiertage einen Bestätigungscode geschrieben, um mich anzumelden. Während des Demoprozesses bin ich auf zwei kleine Probleme gestoßen dll in Asp.net Core. Dies ist in Core nicht möglich. Es muss auf Basis von NuGet oder project.json hinzugefügt werden.
Das zweite Problem ist die Verwendung von Session. Um Session in Core zu verwenden, müssen Sie die Session-Klassenbibliothek hinzufügen.
Sitzung hinzufügen
Fügen Sie basierend auf NuGet zu Ihrem Projekt hinzu: Microsoft.AspNetCore.Session.
Ändern Sie „startup.cs“
Suchen Sie die Methode „ConfigureServices“ (IServiceCollection-Dienste) in „startup.cs“ und fügen Sie „Session“ ein (dieser Ort ist die Asp.net Core-Pipeline). :services.AddSession();
Als nächstes müssen wir Asp.net Core anweisen, Speicher zum Speichern von Sitzungsdaten zu verwenden und Code in „Configure(IApplicationBuilder app,...): app“ hinzuzufügen .UserSession( );
Session
1. Verwenden Sie HttpContext.Session
2 IHttpContextAccessorusing Microsoft.AspNetCore.Http; public class HomeController:Controller { public IActionResult Index() { HttpContext.Session.SetString("code","123456"); return View(); } public IActionResult About() { ViewBag.Code=HttpContext.Session.GetString("code"); return View(); } }
public class SomeOtherClass { private readonly IHttpContextAccessor _httpContextAccessor; private ISession _session=> _httpContextAccessor.HttpContext.Session; public SomeOtherClass(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor=httpContextAccessor; } public void Set() { _session.SetString("code","123456"); } public void Get() { string code = _session.GetString("code"); } }
In einem JSON gespeichertZeichenfolge.
public static class SessionExtensions { public static void SetObjectAsJson(this ISession session, string key, object value) { session.SetString(key, JsonConvert.SerializeObject(value)); } public static T GetObjectFromJson<T>(this ISession session, string key) { var value = session.GetString(key); return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value); } }
var myComplexObject = new MyClass(); HttpContext.Session.SetObjectAsJson("Test", myComplexObject); var myComplexObject = HttpContext.Session.GetObjectFromJson<MyClass>("Test");
Redis zum Speichern von 1. SQL Server
Referenz hinzufügen " Microsoft .Extensions.Caching.SqlServer": "1.0.0"
Injektion:
2. Redis// Microsoft SQL Server implementation of IDistributedCache. // Note that this would require setting up the session state database. services.AddSqlServerCache(o => { o.ConnectionString = "Server=.;Database=ASPNET5SessionState;Trusted_Connection=True;"; o.SchemaName = "dbo"; o.TableName = "Sessions"; });
Referenz hinzufügen: "Microsoft.Extensions.Caching.Redis " : "1.0.0"
Injektion:
[Verwandte Empfehlungen]// Redis implementation of IDistributedCache. // This will override any previously registered IDistributedCache service. services.AddSingleton<IDistributedCache, RedisCache>();
1.
Besondere Empfehlung : Version „php Programmer Toolbox“ V0.1 herunterladen2.
ASP-kostenloses Video-TutorialDas obige ist der detaillierte Inhalt vonEinführung in die Methode zur Verwendung von Session in Asp.net. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!