>백엔드 개발 >C++ >.NET 2.0 Web Forms와 .NET 3.5 MVC2 응용 프로그램 간에 세션 상태를 공유하는 방법은 무엇입니까?

.NET 2.0 Web Forms와 .NET 3.5 MVC2 응용 프로그램 간에 세션 상태를 공유하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-23 21:17:12497검색

How to Share Session State Between a .NET 2.0 Web Forms and a .NET 3.5 MVC2 Application?

ASP.NET 세션 상태 서비스를 사용하여 여러 애플리케이션에서 세션 공유

질문:

한 서버에서 호스팅되는 두 웹 애플리케이션 간에 세션을 공유하는 방법은 무엇입니까? 한 애플리케이션은 .NET 2.0 Web Forms 애플리케이션이고 다른 애플리케이션은 .NET 3.5 MVC2 애플리케이션입니다.

정답:

ASP.NET 세션 상태 서비스를 사용하여 여러 애플리케이션에서 세션을 공유하려면 다음 단계를 따르세요.

  1. 두 애플리케이션 모두에서 세션 상태 구성: 두 web.config 파일 모두에서 세션 상태 모드를 "SQLServer"로 설정하고 동일한 연결 문자열과 컴퓨터 키를 지정합니다.

  2. 세션 상태 데이터베이스 설정: 두 응용 프로그램 모두에 액세스할 수 있는 서버에 데이터베이스를 만들고 "aspnet_regsql" 명령을 실행하여 세션 상태 테이블을 설정합니다.

  3. 저장 프로시저 수정: 연결 문자열에 지정된 애플리케이션 이름을 사용하도록 세션 상태 데이터베이스의 "TempGetAppID" 저장 프로시저를 수정하여 두 애플리케이션 모두 동일한 애플리케이션 이름을 지정하도록 합니다.

  4. 공유 세션 키: 웹 양식 애플리케이션에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.