SessionIDManager.Validate(String) 方法

定義

會取得一個值,表示會話識別碼是否有效。

public:
 virtual bool Validate(System::String ^ id);
public virtual bool Validate(string id);
abstract member Validate : string -> bool
override this.Validate : string -> bool
Public Overridable Function Validate (id As String) As Boolean

參數

id
String

會話識別碼來驗證。

傳回

true如果會話識別碼有效;否則,。 false

實作

範例

以下程式碼範例展示了一個繼承類別SessionIDManager,並CreateSessionID以提供並提供並驗證 a Validate 作為 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

要使用此範例中示範的自訂類別,請將 Web.config 檔案中的 HTTP 模組替換 SessionID 為自訂類別,如下範例所示。

<httpModules>
  <remove name="SessionID" />
  <add name="SessionID"
       type="Samples.AspNet.Session.GuidSessionIDManager" />
</httpModules>

備註

此方法並非設計用來從應用程式程式碼呼叫。

Validate 方法驗證所提供的 id 字串為 24 字元,包含從 a 到 z 的小寫字元及 0 到 5 的數字,且 session ID 最大長度不超過 80 個字元。

GetSessionID該方法在從 HTTP 請求中取得會話識別碼時呼叫該Validate方法,以確保所提供的會話識別碼格式正確。

給繼承者的注意事項

你可以建立一個繼承 SessionIDManager 類別的類別,並覆蓋 CreateSessionID(HttpContext)Validate(String) 方法,來提供自訂的 session 識別碼,供 session 狀態 ASP.NET 使用。 即使你建立自訂的 session 識別碼,session ID 也被類別限制在 80 個字元 SessionIDManager

適用於

另請參閱