ASP.NET 세션 상태 서비스를 사용하여 여러 애플리케이션에서 세션 공유
질문:
한 서버에서 호스팅되는 두 웹 애플리케이션 간에 세션을 공유하는 방법은 무엇입니까? 한 애플리케이션은 .NET 2.0 Web Forms 애플리케이션이고 다른 애플리케이션은 .NET 3.5 MVC2 애플리케이션입니다.
정답:
ASP.NET 세션 상태 서비스를 사용하여 여러 애플리케이션에서 세션을 공유하려면 다음 단계를 따르세요.
두 애플리케이션 모두에서 세션 상태 구성: 두 web.config 파일 모두에서 세션 상태 모드를 "SQLServer"로 설정하고 동일한 연결 문자열과 컴퓨터 키를 지정합니다.
세션 상태 데이터베이스 설정: 두 응용 프로그램 모두에 액세스할 수 있는 서버에 데이터베이스를 만들고 "aspnet_regsql" 명령을 실행하여 세션 상태 테이블을 설정합니다.
저장 프로시저 수정: 연결 문자열에 지정된 애플리케이션 이름을 사용하도록 세션 상태 데이터베이스의 "TempGetAppID" 저장 프로시저를 수정하여 두 애플리케이션 모두 동일한 애플리케이션 이름을 지정하도록 합니다.
공유 세션 키: 웹 양식 애플리케이션에서 MVC 애플리케이션에 세션 키를 게시합니다. MVC 애플리케이션에서 세션 키를 검색하고 이를 사용하여 세션 ID를 저장하고 검색하는 사용자 지정 논리를 구현하여 세션 데이터를 로드합니다.
구현 예:
웹 양식 애플리케이션에서:
<code class="language-csharp">protected void LinkButton1_Click(object sender, EventArgs e) { Session["myvariable"] = "dan"; string sessionKey = HttpContext.Current.Session.SessionID; // 后续代码将sessionKey发布到另一个应用程序 }</code>
MVC 애플리케이션에서:
<code class="language-csharp">[HttpPost] public void Recieve(string sessionKey) { var manager = new SessionIDManager(); bool redirected; bool IsAdded; manager.SaveSessionID(HttpContext.ApplicationInstance.Context, sessionKey, out redirected, out IsAdded); var myVar = Session["myvariable"]; }</code>
세션 ID 저장 및 검색을 처리하려면 SessionIDManager
맞춤 구현이 필요하다는 점에 유의하세요. 이 예제는 기본 프레임워크만 제공하며 실제 구현에는 서로 다른 애플리케이션 간의 세션 데이터 전송 및 저장을 처리하기 위해 더 복잡한 논리가 필요할 수 있습니다. 또한 세션 키 전송이 안전하도록 보안도 신중하게 고려해야 합니다.
위 내용은 .NET 2.0 Web Forms와 .NET 3.5 MVC2 응용 프로그램 간에 세션 상태를 공유하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!