2010-02-01 67 views
1

我在寫一個使用Windows Identity Foundation的ASP.net應用程序。我的ASP.net應用程序使用基於聲明的身份驗證與被動重定向到安全令牌服務。這意味着當用戶訪問應用程序時,它們會自動重定向到安全令牌服務,在那裏他們會收到一個安全令牌,以便將其標識給應用程序。Windows身份基礎:如何在ASP.net中獲得新的安全令牌

在ASP.net中,安全令牌存儲爲cookie。

我想讓用戶在我的應用程序中點擊一下即可刪除cookie並將其重定向到安全令牌服務以獲取新令牌。簡而言之,可以輕鬆註銷並以其他用戶身份登錄。我嘗試刪除代碼中包含代碼的cookie,但它以某種方式持續存在。

如何刪除令牌以便用戶可以再次登錄並獲取新令牌?

回答

5

我找到了解決方案。說得簡明扼要:

Dim smartWsFederationAuthenticationModule As _ 
     Microsoft.IdentityModel.Web.WSFederationAuthenticationModule = _ 
     HttpContext.Current.ApplicationInstance.Modules("WSFederationAuthenticationModule") 
    smartWsFederationAuthenticationModule.SignOut(True) 

在這裏看到更多的信息:http://garrettvlieger.com/blog/2010/03/refreshing-claims-in-a-wif-claims-aware-application/

我也看到,我能得到的句柄WIF框架,這是其他一些地區,也是如此。這絕對值得一讀。

0

餅乾有點奇怪。它們由瀏覽器管理,並且沒有「方法」來刪除它們。從服務器端的Request或Response對象中刪除它們不會將它們從客戶端的瀏覽器中刪除。

要「刪除」Cookie,您必須將其過期日期設置爲過去。

請參閱:http://msdn.microsoft.com/en-us/library/ms178195.aspx

+0

我試圖以這種方式刪除cookie,但它看起來像WIF框架中的某些模塊不允許它。 – 2010-04-19 19:06:36

相關問題