我正在使用WSFederationAuthentication模塊進行身份驗證。我想這樣做:用戶按下注銷按鈕後,他註銷(刪除所有cookie)並重定向到登錄頁面。 我有註銷按鈕的代碼:如何強制聯合登錄重定向登錄頁面?
var ls = new LoginStatus();
ls.LogoutAction = LogoutAction.Redirect;
ls.LogoutPageUrl = {some URL, where I have sign out code}
Signout部分:
Microsoft.IdentityModel.Web.WSFederationAuthenticationModule authModule = FederatedAuthentication.WSFederationAuthenticationModule;
String signoutURL = WSFederationAuthenticationModule.GetFederationPassiveSignOutUrl(
authModule.Issuer,
{login Url},
null);
WSFederationAuthenticationModule.FederatedSignOut(
new Uri(signoutURL),
new Uri(authModule.Realm));
此代碼確實signout和刪除cookies,但不重定向到登錄頁面。用戶看到的網址仍然包含此部分: & wreply = {loginUrl}
據我所知,wreply參數並不總是被使用。
而不是使用FederatedSignOut()方法,我想這一個:
System.Net.WebRequest req = System.Net.WebRequest.Create(signoutURL);
System.Net.WebResponse resp = req.GetResponse();
Redirect(LoginUrl);
但是,這並沒有真正做註銷。當用戶下次嘗試登錄時,他不需要輸入任何憑證並自動登錄。我的猜測,並非所有的cookies都被刪除了。
所以,我的問題是,我怎樣才能註銷並強制重定向到登錄頁面?
P.S.我也自己刪除FedAuth cookies。
奇怪的是,我沒有那個cookie。它可以被稱爲ABCSTSSignOut嗎?另外,你知道該cookie的格式嗎? – Vita1ij