我使用基于声明的身份验证在Sharepoint 2010中进行自定义登录。用户身份验证工作正常但我的自定义注销方法没有。我尝试了几种解决方案,但我的身份验证cookie(联合)仍然存在。为什么呢?
这不起作用:
FormsAuthentication.SignOut();
不是这个:
FederatedAuthentication.SessionAuthenticationModule.SignOut();
FederatedAuthentication.SessionAuthenticationModule.DeleteSessionTokenCookie();
这也不会:
var authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
HttpCookie cookie = new HttpCookie(authCookie.Name);
cookie.Expires = DateTime.Now.AddDays(-1d);
cookie.Domain = domain;
Response.Cookies.Add(cookie);
}
如何删除我的FedAuth cookie?我的cookie不是持久的。删除我的身份验证cookie的唯一方法是在我的浏览器中手动删除它或关闭它。
答案 0 :(得分:1)
使用WIF时我们遇到了一些麻烦。我不知道您的SharePoint实现是否使用WIF,但如果确实如此,这可能会有所帮助:
WSFederationAuthenticationModule authModule = FederatedAuthentication.WSFederationAuthenticationModule;
string signoutUrl = (WSFederationAuthenticationModule.GetFederationPassiveSignOutUrl(authModule.Issuer, authModule.Realm, null));
Response.Redirect(signoutUrl);