共用方式為


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類別,並使用提供和驗證 Guid 做為 SessionID的方法覆寫 CreateSessionIDValidate 方法。

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 個字元字串,其中包含從 到 z 的小寫字元,以及 0 到 5 的數位,而且會話識別元的最大長度不超過 80 個字元。

方法 GetSessionID 會從 HTTP 要求擷取工作階段識別碼時呼叫 Validate 方法,以確保提供之會話標識碼的格式正確。

給繼承者的注意事項

您可以藉由建立繼承 SessionIDManager 類別的類別,並使用您自己的自定義實作覆 CreateSessionID(HttpContext) 寫 和 Validate(String) 方法,提供 ASP.NET 會話狀態要使用的自定義會話標識符。 即使您建立自定義會話標識符,會話標識碼仍受限於 SessionIDManager 類別的80個字元。

適用於

另請參閱