SessionAuthenticationModule.OnAuthenticateRequest(Object, EventArgs) 方法

定义

AuthenticateRequest处理来自 ASP.NET 管道的事件。

protected:
 virtual void OnAuthenticateRequest(System::Object ^ sender, EventArgs ^ eventArgs);
protected virtual void OnAuthenticateRequest (object sender, EventArgs eventArgs);
abstract member OnAuthenticateRequest : obj * EventArgs -> unit
override this.OnAuthenticateRequest : obj * EventArgs -> unit
Protected Overridable Sub OnAuthenticateRequest (sender As Object, eventArgs As EventArgs)

参数

sender
Object

事件的源。 这将是 HttpApplication 对象。

eventArgs
EventArgs

事件的数据。

例外

没有已配置的无效会话标记处理程序。 (在 SessionSecurityTokenHandler 属性中未配置 SecurityTokenHandlers。)

注解

此方法执行以下操作:

  1. TryReadSessionTokenFromCookie调用 方法以从会话 Cookie 中读取 SessionSecurityToken (如果存在)。

  2. 如果由于) 尚未建立会话而无法读取会话安全令牌 (,则返回 。

  3. OnSessionSecurityTokenReceived调用 方法以引发 SessionSecurityTokenReceived 事件。 这为从 Cookie 读取的令牌提供了修改或取消请求的机会。 处理程序还可以通过设置 SessionSecurityTokenReceivedEventArgs.ReissueCookie 属性来指定应重新颁发令牌。

  4. 如果要重新颁发令牌,请将其从缓存中删除,并调用 OnSessionSecurityTokenCreated 方法来引发 SessionSecurityTokenCreated 事件。 这为再次修改令牌提供了机会。 还可以通过在事件处理程序中设置 SessionSecurityTokenCreatedEventArgs.WriteSessionCookie 属性来修改重新发出行为。

  5. 调用 AuthenticateSessionSecurityToken 方法对用户进行身份验证。 如果成功,则会将 属性设置为 Thread.CurrentPrincipal 传入令牌的 属性中包含的 SessionSecurityToken.ClaimsPrincipal 主体。

  6. 如果会话已过期,则 SignOut 调用 方法。

方法 OnAuthenticateRequest 将添加到 方法中 事件的处理程序 HttpApplication.AuthenticateRequestInitializeModule

适用于