Analysieren Sie, wie Asp.net Session verwendet

Y2J
Freigeben: 2017-05-10 10:49:21
Original
1619 Leute haben es durchsucht

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ü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 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();
    }
}
Nach dem Login kopieren

zum Speichern komplexer

-Objekte
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");
   }
}
Nach dem Login kopieren

Serialisieren des -Objekts beim Speichern des ObjektsIn einem JSON gespeichert

Zeichenfolge

.

Verwenden Sie SQL Server oder
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);
  }
}
Nach dem Login kopieren
Redis
var myComplexObject = new MyClass();
HttpContext.Session.SetObjectAsJson("Test", myComplexObject);


var myComplexObject = HttpContext.Session.GetObjectFromJson<MyClass>("Test");
Nach dem Login kopieren
zum Speichern von

1. SQL ServerReferenz hinzufügen " Microsoft .Extensions.Caching.SqlServer": "1.0.0"

Injektion:

2. Redis

Referenz 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";
});
Nach dem Login kopieren

Injektion:

[Verwandte Empfehlungen]

1.
// Redis implementation of IDistributedCache.
// This will override any previously registered IDistributedCache service.
services.AddSingleton<IDistributedCache, RedisCache>();
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!