如何使用c#删除我的fedauth身份验证cookie?

时间:2013-05-17 15:53:15

标签: c# sharepoint authentication sharepoint-2010 fba

我使用基于声明的身份验证在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的唯一方法是在我的浏览器中手动删除它或关闭它。

1 个答案:

答案 0 :(得分:1)

使用WIF时我们遇到了一些麻烦。我不知道您的SharePoint实现是否使用WIF,但如果确实如此,这可能会有所帮助:

WSFederationAuthenticationModule authModule = FederatedAuthentication.WSFederationAuthenticationModule;
                string signoutUrl = (WSFederationAuthenticationModule.GetFederationPassiveSignOutUrl(authModule.Issuer, authModule.Realm, null));
                Response.Redirect(signoutUrl);