Analyser comment Asp.net utilise Session

Y2J
Libérer: 2017-05-10 10:49:21
original
1658 Les gens l'ont consulté

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. IHttpContextAccessor
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();
    }
}
Copier après la connexion

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");
   }
}
Copier après la connexion
pour stocker des objets

complexes sérialiser l'objet

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);
  }
}
Copier après la connexion
var myComplexObject = new MyClass();
HttpContext.Session.SetObjectAsJson("Test", myComplexObject);


var myComplexObject = HttpContext.Session.GetObjectFromJson<MyClass>("Test");
Copier après la connexion
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";
});
Copier après la connexion

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>();
Copier après la connexion

1.

Tutoriel vidéo gratuit ASP

2.

Tutoriel ASP

3

Tutoriel vidéo de base de Li Yanhui

Ce 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!