我们有许多内部公司的ASP.Net应用程序。所有都使用表单身份验证,并且都是基于会话的...
我正在尝试做的是,当用户注销一个应用程序时,他/她已注销所有应用程序。
我有一些迭代cookie集合的逻辑。我可以看到所有其他ASP.Net应用程序,但无法删除它们。
我目前使用以下逻辑:
// expire all asp.net app tickets
string[] allDomainCookes = HttpContext.Current.Request.Cookies.AllKeys;
foreach (string domainCookie in allDomainCookes)
{
if (domainCookie.Contains("ASPXAUTH"))
{
var expiredCookie = new HttpCookie(domainCookie) { Expires = DateTime.Now.AddDays(-1) };
HttpContext.Current.Response.Cookies.Add(expiredCookie);
}
}
HttpContext.Current.Request.Cookies.Clear();
由于某些原因,它们没有被删除。我知道它们都在那里,因为我已经将它们写到了页面上。它们只是没有被删除。...是因为这些是会话cookie吗?
我还要添加它们是某个域的所有子域,因此所有权不应该成为问题吗?
其实...我刚刚发现了问题。我还需要指定域
string[] allDomainCookes = HttpContext.Current.Request.Cookies.AllKeys;
foreach (string domainCookie in allDomainCookes)
{
if (domainCookie.Contains("ASPXAUTH"))
{
var expiredCookie = new HttpCookie(domainCookie) {
Expires = DateTime.Now.AddDays(-1),
Domain = ".mydomain"
};
HttpContext.Current.Response.Cookies.Add(expiredCookie);
}
}
HttpContext.Current.Request.Cookies.Clear();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句