我很惊讶我找不到任何答案.
如何将我的cookie中的sessionid设置为在会话结束时到期?(当浏览器关闭或用户在一段时间内处于非活动状态时).
我找到的两个解决方案是
(httpcookie).Expires = HttpContext.Current.Session.Timeout
Run Code Online (Sandbox Code Playgroud)
这给了我一个编译错误,所以我不知道用户是否在发布之前检查了他的代码.另一个是将过期日期设置为1天前,我的直觉说错了.我该怎么做呢?
我们有许多公司内部的 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();
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它们没有被删除。我知道它们都在那里,因为我已经把它们写在了页面上。它们只是没有被删除......这是因为这些是会话 cookie 吗?
另外我应该补充一下,它们都是某个域的子域,所以所有权应该不是问题?