Share via


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)呼叫 方法來判斷是否已收到 WS-Federation 登入回應消息 (“wsignin1.0”) 。 如果回應是 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 是 SessionAuthenticationModuleFederatedAuthentication.SessionAuthenticationModule property.) 工作階段令牌是使用步驟 5 中所傳回的宣告主體所建立的物件。 SessionSecurityToken.ValidFrom和 屬性是使用ValidFrom步驟 3 中傳回的 和 SessionSecurityToken.ValidToValidTo 屬性來設定,SecurityToken並且會根據目前時間和 WSFAM 所使用之令牌處理程式集合中物件的 或 屬性SessionSecurityTokenHandler所指定的DefaultTokenLifetimeTokenLifetime令牌存留期進行驗證。 會話令牌處理程式上的令牌存留期可以透過 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 方法。

適用於