Asp.net이 세션을 사용하는 방법 분석
Session은 사용자와 웹 애플리케이션의 세션 상태를 저장하는 방법입니다. ASP.NET Core는 세션 상태를 관리하기 위한 미들웨어를 제공합니다. 이 문서에서는 Asp.net Core에서의 Session 사용을 주로 소개합니다.
서문
2017년은 조용히 시작되었고, 2017년은 저에게 특히 중요한 해입니다.
설날 연휴 동안 집에서 Asp.net Core를 작성하여 로그인했습니다. 인증 코드 데모 과정에서 두 가지 작은 문제가 발생했습니다. Asp.net Core에서는 DLL을 직접 참조했습니다. Core에서는 불가능합니다. NuGet을 기반으로 추가하거나 프로젝트를 기반으로 추가해야 합니다. json을 저장하면 복원이 시작됩니다. 수업 도서관.
두 번째 문제는 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"
주입:
rree[관련 추천]
1.
ASP 무료 동영상 튜토리얼 3.위 내용은 Asp.net이 세션을 사용하는 방법 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Microsoft의 Windows 11 2022 업데이트(22H2)는 기본적으로 CoreIsolation의 메모리 무결성 보호를 활성화합니다. 그러나 Windows 11 2022 업데이트(22H1)와 같은 이전 버전의 운영 체제를 실행하는 경우 이 기능을 수동으로 켜야 합니다. Windows 11에서 CoreIsolation의 메모리 무결성 기능 켜기 Core Isolation에 대해 모르는 사용자를 위해 Windows의 기본 핵심 활동을 메모리에서 격리하여 악성 프로그램으로부터 보호하도록 설계된 보안 프로세스입니다. 메모리 무결성 기능과 결합된 이 프로세스는 다음을 보장합니다.

코어는 컴퓨터에서 두 가지 의미를 갖습니다. 1. 코어라고도 알려진 코어는 CPU의 가장 중요한 구성 요소입니다. CPU의 모든 계산, 저장 명령 수락 및 데이터 처리는 코어에서 수행됩니다. core는 Intel의 프로세서 이름이며, Core는 Intel이 Pentium 프로세서에 이어 출시한 프로세서 브랜드입니다. 현재 12세대 Core 프로세서를 출시했습니다.

springboot 프로젝트 프로덕션 세션아웃 시간 초과에서 문제가 발견되었습니다. 문제 설명: 테스트 환경에서는 세션아웃 구성이 적용되었는지 확인하기 위해 application.yaml을 변경하여 세션아웃을 구성했습니다. , 프로덕션 환경에 도착하면 만료 시간이 8시간으로 직접 설정되었습니다. 그런데 정오에 고객으로부터 프로젝트 만료 시간이 짧게 설정되어 있다는 피드백을 받았습니다. 30분 동안 아무 작업도 수행하지 않으면 세션이 만료되어 반복 로그인이 필요합니다. 개발 환경 처리 문제를 해결합니다. springboot 프로젝트에는 Tomcat이 내장되어 있으므로 프로젝트의 application.yaml에 구성된 세션 아웃이 효과적입니다. 프로덕션 환경: 프로덕션 환경 릴리스는 다음과 같습니다.

세션 실패는 일반적으로 세션 수명 만료 또는 서버 종료로 인해 발생합니다. 해결 방법은 다음과 같습니다. 1. 세션 수명을 연장합니다. 3. 쿠키를 사용합니다. 4. 세션 관리 미들웨어를 사용합니다.

PHPSession의 도메인 간 문제 해결 프런트엔드와 백엔드 분리 개발에서 도메인 간 요청이 표준이 되었습니다. 도메인 간 문제를 처리할 때 일반적으로 세션 사용 및 관리가 포함됩니다. 그러나 브라우저 원본 정책 제한으로 인해 기본적으로 도메인 간에 세션을 공유할 수 없습니다. 이 문제를 해결하려면 도메인 간 세션 공유를 달성하기 위한 몇 가지 기술과 방법을 사용해야 합니다. 1. 도메인 간 세션을 공유하기 위한 쿠키의 가장 일반적인 사용

새로 고침 후 PHP 세션이 사라지는 문제에 대한 해결 방법: 1. "session_start();"를 통해 세션을 엽니다. 2. 모든 공개 구성을 PHP 파일에 작성합니다. 3. 변수 이름은 배열 첨자와 같을 수 없습니다. 4. phpinfo에서 세션 데이터의 저장 경로를 확인하고 파일 디렉터리의 sessio가 성공적으로 저장되었는지 확인합니다.

세션 PHP의 기본 만료 시간은 1440초(24분)입니다. 즉, 클라이언트가 24분 이상 새로 고치지 않으면 사용자가 브라우저를 닫으면 현재 세션이 만료되고 세션이 종료됩니다. 세션이 더 이상 존재하지 않습니다.

문제: 오늘 프로젝트에서 설정 시간 초과 문제가 발생했으며 SpringBoot2의 application.properties에 대한 변경 사항이 적용되지 않았습니다. 해결 방법: server.* 속성은 SpringBoot에서 사용하는 내장 컨테이너를 제어하는 데 사용됩니다. SpringBoot는 ServletWebServerFactory 인스턴스 중 하나를 사용하여 서블릿 컨테이너의 인스턴스를 생성합니다. 이러한 클래스는 server.* 속성을 사용하여 제어되는 서블릿 컨테이너(tomcat, jetty 등)를 구성합니다. 애플리케이션이 Tomcat 인스턴스에 war 파일로 배포되면 server.* 속성이 적용되지 않습니다. 적용되지 않습니다.
