Session은 사용자와 웹 애플리케이션의 세션 상태를 저장하는 방법입니다. ASP.NET Core는 세션 상태를 관리하기 위한 미들웨어를 제공합니다. 이 문서에서는 Asp.net Core에서의 Session 사용을 주로 소개합니다.
서문
2017년은 조용히 시작되었고, 2017년은 저에게 특히 중요한 해입니다.
설날 연휴 동안 집에서 Asp.net Core를 작성하여 로그인했습니다. 인증 코드 데모 과정에서 두 가지 작은 문제가 발생했습니다. Asp.net Core에서는 DLL을 직접 참조했지만 Core에서는 불가능합니다. 그러면 VS를 저장하면 클래스 라이브러리가 복원되기 시작합니다.
두 번째 문제는 Session의 사용입니다. Core에서 Session을 사용하려면 Session 클래스 라이브러리를 추가해야 합니다.
세션 추가
프로젝트의 NuGet을 기반으로 추가합니다: Microsoft.AspNetCore.Session.
startup.cs 수정
startup.cs에서 ConfigureServices(IServiceCollection 서비스) 메서드를 찾아 Session을 삽입합니다(여기는 Asp.net Core 파이프라인입니다). :services.AddSession();
다음으로 Asp.net Core에 메모리를 사용하여 세션 데이터를 저장하고 구성(IApplicationBuilder 앱,...)에 코드를 추가하도록 지시해야 합니다. .UserSession( );
Session
1. Controller에 없으면 HttpContext.Sessionusing 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"); } }
객체를 json으로 직렬화합니다. 🎜> 저장. 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);
}
}
SQL Server를 저장합니다. "Microsoft.Extensions.Caching . SqlServer": "1.0.0"
삽입:
var myComplexObject = new MyClass(); HttpContext.Session.SetObjectAsJson("Test", myComplexObject); var myComplexObject = HttpContext.Session.GetObjectFromJson<MyClass>("Test");
2. Redis
참조 추가 "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"; });
[관련 권장 사항]
1.
특별 권장 사항
: "php 프로그래머 도구 상자 ” V0.1 버전 다운로드2. ASP 무료 동영상 튜토리얼
위 내용은 Asp.net에서 Session을 사용하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!