Heim > Artikel > Backend-Entwicklung > Analysieren Sie, wie Asp.net Session verwendet
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 basierend auf NuGet oder json hinzugefügt werden. Dann beginnt die Wiederherstellung die Klassenbibliothek. Das zweite Problem ist die Verwendung von Session. Um Session in Core zu verwenden, müssen Sie die Session-Klassenbibliothek hinzufügen.
Sitzung hinzufügenFü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( );
Session1. Verwenden Sie HttpContext.Session
using 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(); } }
zum Speichern komplexer
-Objektepublic 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"); } }
Serialisieren des -Objekts beim Speichern des ObjektsIn einem JSON gespeichert
ZeichenfolgeVerwenden Sie SQL Server oderpublic 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); } }Redis
var myComplexObject = new MyClass(); HttpContext.Session.SetObjectAsJson("Test", myComplexObject); var myComplexObject = HttpContext.Session.GetObjectFromJson<MyClass>("Test");zum Speichern von
1. SQL ServerReferenz hinzufügen " Microsoft .Extensions.Caching.SqlServer": "1.0.0"
Injektion:
2. RedisReferenz hinzufügen: "Microsoft.Extensions.Caching.Redis " : "1.0.0"// 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"; });
Injektion:
[Verwandte Empfehlungen]1.// Redis implementation of IDistributedCache. // This will override any previously registered IDistributedCache service. services.AddSingleton<IDistributedCache, RedisCache>();Kostenloses ASP-Video-Tutorial
2. ASP-Tutorial
3. Li Yanhui ASP-Grundlagen-Video-Tutorial
Das obige ist der detaillierte Inhalt vonAnalysieren Sie, wie Asp.net Session verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!