簡體   English   中英

Windows Identity Foundation-注銷或更新聲明

[英]Windows identity foundation - sign out or update claims

我正在使用Windows Identity Foundation管理到我們網站的登錄。

當用戶登錄時,我在其請求中使用了一些信息以放入索賠中。 一切正常,但現在我需要管理以下情況:

  1. 用戶已經登錄,被認證並且具有有效的令牌。
  2. 但是用戶決定再次瀏覽(通過來自另一個站點的重定向)
  3. 因此,他在要求中提供的信息有所不同。
  4. 我要
    • 注銷他-這樣他自然就可以用他的新信息創建一個新令牌
    • 或更新他現有的令牌。

所以我的問題是:

  1. 如何注銷Windows Identity Foundation?
  2. 或如何更新現有的索賠?

我已經試過這段代碼:

  public void ExpireClaims(HttpContextBase httpContextBase)
    {
        var module =
            httpContextBase.ApplicationInstance.Modules["WSFederationAuthenticationModule"] as
            WSFederationAuthenticationModule;
        if (module == null)
        {
            return;
        }
        module.SignOut(true);
    }

但是模塊始終為空。

我嘗試了這個:

  public void FederatedSignOut(string replyUrl)
    {
        WSFederationAuthenticationModule.FederatedSignOut(null, new Uri(replyUrl));
    }

但是當我這樣做時,我得到一個空引用執行。

非常感謝。

本質上,注銷只是刪除cookie,因此:

FormsAuthentication.SignOut

要么

FederatedAuthentication.SessionAuthenticationModule.SignOut

要么

FederatedAuthentication.SessionAuthenticationModule.DeleteSessionTokenCookie

將工作。

或使用FederatedPassiveSignInStatus (應在您的工具箱中)。 將屬性SignOutAction設置為FederatedSignOut ,控件還將清除您的STS會話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM