WSFederationAuthenticationModule.OnAuthenticateRequest 方法

定义

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

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

参数

sender
Object

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

args
EventArgs

事件的数据。

注解

方法 OnAuthenticateRequest 实现 WS-Federation 请求处理管道。 它通过 InitializeModule 方法添加到 HttpApplication.AuthenticateRequest ASP.NET 管道中的 事件。

方法执行以下操作:

  1. CanReadSignInResponse(HttpRequestBase)调用 方法以确定是否已收到 (“wsignin1.0”) WS-Federation 登录响应消息。 如果响应是 WS-Federation 注销清理请求 (“wsignoutcleanup1.0”) , CanReadSignInResponse(HttpRequestBase) 则处理消息,终止请求并根据请求中的 WS-Federation 参数重定向客户端。 如果消息不是登录响应或注销清理请求,则模块仅返回;否则,它将执行以下步骤来处理登录响应。

  2. 调用 方法以 GetSecurityToken(HttpRequestBase) 从请求反序列化 SecurityToken 对象。

  3. 引发 SecurityTokenReceived 事件。 可以取消进一步处理,或修改此事件的处理程序中收到的安全令牌。 处理程序通常用于修改 SecurityToken.ValidFromSecurityToken.ValidTo 属性。

  4. 验证安全令牌,并从安全令牌中的声明创建 ClaimsPrincipal 对象。

  5. 引发 SecurityTokenValidated 事件。 可以取消进一步处理,或修改此事件的处理程序中的声明主体。

  6. 使用 SAM) (配置的会话身份验证模块创建 SessionSecurityToken 对象。 (配置的 SAM 是由 SessionAuthenticationModule 属性返回 FederatedAuthentication.SessionAuthenticationModule 的对象。) 会话令牌是使用步骤 5 中返回的声明主体创建的。 SessionSecurityToken.ValidFromSessionSecurityToken.ValidTo 属性是使用ValidFrom步骤 3 中返回的 的 SecurityTokenValidTo 属性设置的,并针对 WSFAM 正在使用的令牌处理程序集合中 对象的 或 TokenLifetime 属性SessionSecurityTokenHandler指定的DefaultTokenLifetime当前时间和令牌生存期进行验证。 会话令牌处理程序上的令牌生存期可以通过 sessionTokenRequirement> 元素在配置<中指定。 注意: PersistentSessionLifetime 不使用为 SAM 配置的 Cookie 处理程序上的 属性。

  7. SetPrincipalAndWriteSessionToken使用会话令牌调用 方法以写入会话 Cookie。 方法 SetPrincipalAndWriteSessionToken 首先引发 SessionSecurityTokenCreated 事件。 可以更改会话令牌的属性,或更改是否应将此 Cookie 持久保存在此事件的处理程序中。 引发 事件后,该方法随后使用 SAM 写入 Cookie。

    注意

    SessionSecurityTokenHandler配置中设置的 不用于写入 Cookie。

  8. OnSignedIn调用 方法以引发 SignedIn 事件。

  9. GetReturnUrlFromResponse调用 方法以获取要将客户端重定向到的 RP 页。 默认情况下,此方法从登录响应中的 wctx 参数读取返回 URL。 有关 WSFAM 如何存储返回 URL 的详细信息,请参阅 CreateSignInRequest 方法。

适用于