Maison > Article > développement back-end > Analyser comment Asp.net utilise Session
Session est une méthode pour enregistrer l'état de session des utilisateurs et des applications Web. ASP.NET Core fournit un middleware pour gérer l'état de session. Cet article présente principalement l'utilisation de Session dans Asp.net Core. apprenez-en,
Avant-propos
2017 a commencé tranquillement, et 2017 est encore une année particulièrement importante pour moi.
J'ai écrit un Asp.net Core chez moi pendant les vacances du Nouvel An Code de vérification pour me connecter. J'ai rencontré deux petits problèmes pendant le processus de démonstration. dll dans Asp.net Core. Dans le passé, nous faisions référence directement à la DLL dans Core. Elle doit être ajoutée en fonction de NuGet ou en fonction du projet.json. la bibliothèque de classe.
Le deuxième problème est l'utilisation de Session. Pour utiliser Session dans Core, vous devez ajouter la bibliothèque de classes Session.
Ajouter une session
Ajouter basé sur NuGet sur votre projet : Microsoft.AspNetCore.Session.
Modifier startup.cs
Trouvez la méthode ConfigureServices (services IServiceCollection) dans startup.cs et injectez Session (cet endroit est le pipeline Asp.net Core) :services.AddSession();
Ensuite, nous devons dire à Asp.net Core d'utiliser la mémoire pour stocker les données de session et ajouter du code dans Configure(IApplicationBuilder app,...): app .UserSession( );
Session
1. Utilisez 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"); } }pour stocker des objets lors du stockage de l'objet
Stocké dans un jsonchaîne.
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");Utilisez SQL Server ou
Redis pour stocker 1. SQL Server
Ajouter une référence " Microsoft .Extensions.Caching.SqlServer": "1.0.0"
Injection :
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"; });
Ajouter une référence "Microsoft.Extensions.Caching.Redis " : "1.0.0"
Injection :
[Recommandations associées]// Redis implementation of IDistributedCache. // This will override any previously registered IDistributedCache service. services.AddSingleton<IDistributedCache, RedisCache>();
1.
Tutoriel vidéo gratuit ASPTutoriel ASPTutoriel vidéo de base de Li YanhuiCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!