C# 如何删除ASP.NET网站上的Cookie
在我的网站中,当用户单击“注销”按钮时,Logout.aspx页面将加载代码C# 如何删除ASP.NET网站上的Cookie,c#,asp.net,session,cookies,session-cookies,C#,Asp.net,Session,Cookies,Session Cookies,在我的网站中,当用户单击“注销”按钮时,Logout.aspx页面将加载代码Session.Clear() 在ASP.NET/C#中,这会清除所有cookie吗?或者是否需要添加任何其他代码来删除我网站上的所有cookie?否,cookie只能通过为每个cookie添加的代码来清除 if (Request.Cookies["UserSettings"] != null) { HttpCookie myCookie = new HttpCookie("UserSettings");
Session.Clear()
在ASP.NET/C#中,这会清除所有cookie吗?或者是否需要添加任何其他代码来删除我网站上的所有cookie?否,cookie只能通过为每个cookie添加的代码来清除
if (Request.Cookies["UserSettings"] != null)
{
HttpCookie myCookie = new HttpCookie("UserSettings");
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
}
在执行会话时。清除()
:
- 将删除
集合中的所有键值对<代码>会话结束事件未发生会话
会话。放弃方法
会话结束
事件:
- 具有会话ID的Cookie(如果您的应用程序将Cookie用于会话ID存储,默认情况下是这样)将被删除
不,饼干只能由每个人清洗
if (Request.Cookies["UserSettings"] != null)
{
HttpCookie myCookie = new HttpCookie("UserSettings");
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
}
在执行会话时。清除()
:
- 将删除
会话
集合中的所有键值对<代码>会话结束
事件未发生
如果在注销期间使用此方法,还应使用会话。放弃方法
会话结束
事件:
- 具有会话ID的Cookie(如果您的应用程序将Cookie用于会话ID存储,默认情况下是这样)将被删除
试试这样的方法:
if (Request.Cookies["userId"] != null)
{
Response.Cookies["userId"].Expires = DateTime.Now.AddDays(-1);
}
但使用它也有意义
Session.Abandon();
除此之外,在许多情况下。尝试以下方法:
if (Request.Cookies["userId"] != null)
{
Response.Cookies["userId"].Expires = DateTime.Now.AddDays(-1);
}
但使用它也有意义
Session.Abandon();
此外,在许多情况下。不幸的是,对我来说,设置“过期”并不总是有效。饼干没有受到影响
这段代码确实对我有用:
HttpContext.Current.Session.Abandon();
HttpContext.Current.Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
其中,“ASP.NET\u SessionId”
是cookie的名称。这并不是真的删除cookie,而是用一个空白cookie覆盖它,这对我来说已经足够接近了。不幸的是,对我来说,设置“Expires”并不总是有效的。饼干没有受到影响
这段代码确实对我有用:
HttpContext.Current.Session.Abandon();
HttpContext.Current.Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
其中,“ASP.NET\u SessionId”
是cookie的名称。这并不是真的删除cookie,而是用一个空白cookie覆盖它,这对我来说已经足够接近了。您不应该将密码存储为cookie。要删除cookie,实际上只需修改并使其过期。你不能真的删除它,即从用户的磁盘上删除它
以下是一个示例:
HttpCookie aCookie;
string cookieName;
int limit = Request.Cookies.Count;
for (int i=0; i<limit; i++)
{
cookieName = Request.Cookies[i].Name;
aCookie = new HttpCookie(cookieName);
aCookie.Expires = DateTime.Now.AddDays(-1); // make it expire yesterday
Response.Cookies.Add(aCookie); // overwrite it
}
HttpCookie-aCookie;
字符串cookieName;
int limit=Request.Cookies.Count;
对于(int i=0;i您不应将密码存储为cookie。要删除cookie,您只需修改它并使其过期。您不能真正删除它,即从用户磁盘中删除它
以下是一个示例:
HttpCookie aCookie;
string cookieName;
int limit = Request.Cookies.Count;
for (int i=0; i<limit; i++)
{
cookieName = Request.Cookies[i].Name;
aCookie = new HttpCookie(cookieName);
aCookie.Expires = DateTime.Now.AddDays(-1); // make it expire yesterday
Response.Cookies.Add(aCookie); // overwrite it
}
HttpCookie-aCookie;
字符串cookieName;
int limit=Request.Cookies.Count;
对于(int i=0;i将OP的问题标题视为删除所有Cookie—“删除网站中的Cookie”
我在网上的某个地方遇到了Dave Domagala的代码。我编辑了Dave的代码,以允许Google Analytics Cookie也出现在网站上,它通过在网站上找到的所有Cookie循环,并将它们全部删除。(从开发人员的角度来看,将新代码更新到现有网站,这是一种很好的做法,可以避免用户重新访问该网站时出现问题)
我使用下面的代码,首先读取cookies,保存所有必需的数据,然后在用下面的循环将所有内容清洗干净后重置cookies
守则:
int limit = Request.Cookies.Count; //Get the number of cookies and
//use that as the limit.
HttpCookie aCookie; //Instantiate a cookie placeholder
string cookieName;
//Loop through the cookies
for(int i = 0; i < limit; i++)
{
cookieName = Request.Cookies[i].Name; //get the name of the current cookie
aCookie = new HttpCookie(cookieName); //create a new cookie with the same
// name as the one you're deleting
aCookie.Value = ""; //set a blank value to the cookie
aCookie.Expires = DateTime.Now.AddDays(-1); //Setting the expiration date
//in the past deletes the cookie
Response.Cookies.Add(aCookie); //Set the cookie to delete it.
}
将OP的问题标题视为删除所有Cookie-“删除网站中的Cookie”
我在网上的某个地方遇到了Dave Domagala的代码。我编辑了Dave的代码,以允许Google Analytics Cookie也出现在网站上,它通过在网站上找到的所有Cookie循环,并将它们全部删除。(从开发人员的角度来看,将新代码更新到现有网站,这是一种很好的做法,可以避免用户重新访问该网站时出现问题)
我使用下面的代码,首先读取cookies,保存所有必需的数据,然后在用下面的循环将所有内容清洗干净后重置cookies
守则:
int limit = Request.Cookies.Count; //Get the number of cookies and
//use that as the limit.
HttpCookie aCookie; //Instantiate a cookie placeholder
string cookieName;
//Loop through the cookies
for(int i = 0; i < limit; i++)
{
cookieName = Request.Cookies[i].Name; //get the name of the current cookie
aCookie = new HttpCookie(cookieName); //create a new cookie with the same
// name as the one you're deleting
aCookie.Value = ""; //set a blank value to the cookie
aCookie.Expires = DateTime.Now.AddDays(-1); //Setting the expiration date
//in the past deletes the cookie
Response.Cookies.Add(aCookie); //Set the cookie to delete it.
}
我只想指出,在使用Session.Discard时,会话ID cookie并没有被删除
放弃会话时,不会从中删除会话ID cookie
用户的浏览器。因此,一旦会话完成
放弃,对同一应用程序的任何新请求都将使用相同的
会话ID,但将有一个新的会话状态实例。同时
时间,如果用户在同一DNS中打开另一个应用程序
域,用户在放弃后不会丢失其会话状态
方法从一个应用程序调用
有时,您可能不想重用会话ID。如果您这样做,并且如果
如果您了解不重用会话ID的后果,请使用
下面的代码示例演示如何放弃会话并清除
会话ID cookie:
Session.Abandon();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
此代码示例从服务器中清除会话状态并设置
会话状态cookie为null。null值有效地清除
从浏览器中删除cookie
我只想指出,在使用会话时,会话ID cookie不会被删除。正如其他人所说,放弃
放弃会话时,不会从中删除会话ID cookie
用户的浏览器。因此,一旦会话完成
放弃,对同一应用程序的任何新请求都将使用相同的
会话ID,但将有一个新的会话状态实例。同时
时间,如果用户在同一DNS中打开另一个应用程序
域,用户在放弃后不会丢失其会话状态
方法从一个应用程序调用
有时,您可能不想重用会话ID。如果您这样做,并且如果
如果您了解不重用会话ID的后果,请使用
下面的代码示例演示如何放弃会话并清除
会话ID cookie:
Session.Abandon();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
此代码示例从服务器中清除会话状态并设置