loc*_*ock 78 c# asp.net cookies session session-cookies
在我的网站中,当用户点击"注销"按钮时,Logout.aspx页面会加载代码Session.Clear().
在ASP.NET/C#中,这是否清除了所有cookie?或者是否需要添加任何其他代码才能删除我网站的所有Cookie?
Kir*_*ill 133
尝试类似的东西:
if (Request.Cookies["userId"] != null)
{
Response.Cookies["userId"].Expires = DateTime.Now.AddDays(-1);
}
Run Code Online (Sandbox Code Playgroud)
但使用也很有意义
Session.Abandon();
Run Code Online (Sandbox Code Playgroud)
除了在许多情况下.
VMA*_*Atm 44
不可以,只能通过为每个Cookie 设置过期日期来清除Cookie .
if (Request.Cookies["UserSettings"] != null)
{
HttpCookie myCookie = new HttpCookie("UserSettings");
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
}
Run Code Online (Sandbox Code Playgroud)
目前Session.Clear():
Session收集的所有键值对都将被删除.Session_End事件没有发生.如果在注销期间使用此方法,则还应将该Session.Abandon方法用于
Session_End事件:
pix*_*its 26
这是我使用的:
private void ExpireAllCookies()
{
if (HttpContext.Current != null)
{
int cookieCount = HttpContext.Current.Request.Cookies.Count;
for (var i = 0; i < cookieCount; i++)
{
var cookie = HttpContext.Current.Request.Cookies[i];
if (cookie != null)
{
var expiredCookie = new HttpCookie(cookie.Name) {
Expires = DateTime.Now.AddDays(-1),
Domain = cookie.Domain
};
HttpContext.Current.Response.Cookies.Add(expiredCookie); // overwrite it
}
}
// clear cookies server side
HttpContext.Current.Request.Cookies.Clear();
}
}
Run Code Online (Sandbox Code Playgroud)
Buh*_*ica 10
不幸的是,对我来说,设置"Expires"并不总是有效.cookie没有受到影响.
这段代码对我有用:
HttpContext.Current.Session.Abandon();
HttpContext.Current.Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
Run Code Online (Sandbox Code Playgroud)
"ASP.NET_SessionId"cookie的名称在哪里.这并没有真正删除cookie,而是使用空白cookie覆盖它,这对我来说非常接近.
我只想指出,正如其他人所说,在使用 Session.Abandon 时不会删除 Session ID cookie。
当您放弃会话时,会话 ID cookie 不会从用户的浏览器中删除。因此,一旦会话被放弃,对同一应用程序的任何新请求都将使用相同的会话 ID,但将具有新的会话状态实例。同时,如果用户在同一个 DNS 域内打开另一个应用程序,用户在从一个应用程序调用 Abandon 方法后不会丢失其会话状态。
有时,您可能不想重复使用会话 ID。如果您这样做并且您了解不重用会话 ID 的后果,请使用以下代码示例放弃会话并清除会话 ID cookie:
Run Code Online (Sandbox Code Playgroud)Session.Abandon(); Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));此代码示例从服务器清除会话状态并将会话状态 cookie 设置为 null。null 值有效地从浏览器中清除了 cookie。
http://support.microsoft.com/kb/899918
现在是 2018 年,所以在 ASP.NET Core 中,有一个直接的内置函数。要删除 cookie,请尝试以下代码:
if(Request.Cookies["aa"] != null)
{
Response.Cookies.Delete("aa");
}
return View();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
189409 次 |
| 最近记录: |