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 类,并使用提供 和 Validate 验证 Guid 作为 SessionID的方法替代 CreateSessionID 和 方法。

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 文件中的 SessionID HTTP 模块替换为自定义类,如以下示例所示。

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

注解

此方法不应从应用程序代码调用。

方法 Validate 验证提供的 id 是一个由 24 个字符组成的字符串,其中包含从 到 z 的小写字符和从 0 到 5 的数字,并且会话 ID 的最大长度不超过 80 个字符。

GetSessionID HTTP 请求检索会话标识符时, 方法调用 Validate 方法,以确保所提供的会话标识符格式正确。

继承者说明

可以通过创建继承 SessionIDManager 类的类并使用自己的自定义实现替代 CreateSessionID(HttpContext)Validate(String) 方法,提供供 ASP.NET 会话状态使用的自定义会话标识符。 即使创建自定义会话标识符,该类的会话 ID 也限制为 80 个字符 SessionIDManager

适用于

另请参阅