다음을 통해 공유


SessionIDManager.CreateSessionID(HttpContext) 메서드

정의

세션의 고유 세션 식별자를 만듭니다.

public:
 virtual System::String ^ CreateSessionID(System::Web::HttpContext ^ context);
public virtual string CreateSessionID (System.Web.HttpContext context);
abstract member CreateSessionID : System.Web.HttpContext -> string
override this.CreateSessionID : System.Web.HttpContext -> string
Public Overridable Function CreateSessionID (context As HttpContext) As String

매개 변수

context
HttpContext

HTTP 요청(예: HttpContextRequest 속성)을 처리하는 데 사용되는 서버 개체를 참조하는 Response 개체입니다.

반환

고유한 세션 식별자입니다.

구현

예제

다음 코드 예제에서는 상속 되는 클래스를 보여 줍니다.는 SessionIDManager 클래스 및 재정의 CreateSessionIDValidate 제공 하 고 유효성을 검사 하는 메서드를 사용 하 여 메서드를 Guid 으로 SessionID합니다.

using System;
using System.Configuration;
using System.Web.Configuration;
using System.Web;
using System.Web.SessionState;

namespace Samples.AspNet.Session
{

  public class GuidSessionIDManager : SessionIDManager
  {

    public override string CreateSessionID(HttpContext context)
    {
      return Guid.NewGuid().ToString();
    }

    public override bool Validate(string id)
    {
      try
      {
        Guid testGuid = new Guid(id);

        if (id == testGuid.ToString())
          return true;
      }
      catch
      {
      }

      return false;
    }
  }
}
Imports System.Configuration
Imports System.Web.Configuration
Imports System.Web
Imports System.Web.SessionState


Namespace Samples.AspNet.Session

  Public Class GuidSessionIDManager
    Inherits SessionIDManager

    Public Overrides Function CreateSessionID(context As HttpContext) As String
      Return Guid.NewGuid().ToString()
    End Function

    Public Overrides Function Validate(id As String) As Boolean
      Try
        Dim testGuid As Guid = New Guid(id)

        If id = testGuid.ToString() Then _
          Return True
      Catch
      
      End Try

      Return False
    End Function

  End Class

End Namespace

이 예제에서 설명한 사용자 지정 클래스를 사용 하려면 sessionIDManagerType 특성을 구성 합니다 sessionState 요소 (ASP.NET 설정 스키마) 요소를 다음 예제에서와 같이 합니다.

<sessionState
  Mode="InProc"
  stateConnectionString="tcp=127.0.0.1:42424"
  stateNetworkTimeout="10"
  sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI"
  sqlCommandTimeout="30"
  customProvider=""
  cookieless="false"
  regenerateExpiredSessionId="false"
  timeout="20"
  sessionIDManagerType="Your.ID.Manager.Type,
    CustomAssemblyNameInBinFolder"
/>

설명

이 메서드는 애플리케이션 코드에서 호출할 수 없습니다.

CreateSessionID 메서드는 임의로 생성 된 번호에서 소문자 자 길이의 24 자의 문자열로 인코딩된 있는 고유한 세션 식별자를 반환을 z를 0부터 5 까지의 숫자입니다.

상속자 참고

상속 된 클래스를 만들어 ASP.NET 세션 상태에서 사용할 사용자 지정 세션 식별자를 제공할 수 있습니다 합니다 SessionIDManager 클래스를 CreateSessionID(HttpContext)Validate(String) 메서드를 사용자 고유의 사용자 지정 구현 합니다. 사용자 지정 세션 ID의 기본 구현에 의해 적용 된 문자 제약 조건을 충족 하지 않는 경우는 Validate(String) 메서드를 재정의 해야 하는 Validate(String) 사용자 지정 세션 식별자의 유효성 검사를 제공 하는 방법입니다. 이 경우에 SessionIDManager 클래스는 사용자 지정 세션 식별자를 HTTP 응답으로 인코딩된 URL 및 확인 URL을 사용 하 여 HTTP 요청에서 디코딩된 합니다 Encode(String)Decode(String) 메서드를 각각.

적용 대상

추가 정보