Sam*_*m M 5 asp.net asp.net-mvc-3
我有一个带有两个用户的asp.net MVC3应用程序Admin和General.Cookies都为这两个用户保存.以下是我的cookie保存方式.
Cookie.setCookie(No,DOB,User);
Run Code Online (Sandbox Code Playgroud)
使用setCookie方法创建一个Cookie类
public static void setCookie(int No,DateTime DOB,string User)
{
HttpCookie MyCookie= new HttpCookie("MyCookie");
MyCookie["No"] = No;
MyCookie["DOB"] = DOB;
MyCookie["User"] = User;
MyCookie.Expires.Add(new TimeSpan(0,30,0));
HttpContext.Current.Response.Cookies.Add(MyCookie);
}
Run Code Online (Sandbox Code Playgroud)
以上是我的Setcookie代码.
MyCookie.Expires.Add(new TimeSpan(0,30,0));will give the default expiry time to 30 minutes.
Run Code Online (Sandbox Code Playgroud)
我尝试的是当用户点击注销时,cookie应该被完全清除,用户不应该能够导航到站点的任何Authenticated部分.我也试过这个但没用
MyCookie.Expires.Add(-1);
Run Code Online (Sandbox Code Playgroud)
但我在我的SetCookie方法中尝试过这种方法.当用户单击"注销"时,如何清除cookie.我也尝试在Cookie类中创建一个Logout方法,如下所示:
public static bool logout()
{
HttpCookie reqCookies = HttpContext.Current.Request.Cookies["MyCookie"];
reqCookies.Expires.AddDays(-1);
return true;
}
Run Code Online (Sandbox Code Playgroud)
在这里我尝试使用已保存的cookie并通过设置.AddDays(-1);
和使用if cookie.Logout()==true 并将其重定向到我的主页来使其过期.但它在RunTime上给出了以下错误
.添加或减去的值会导致无法表示的DateTime.参数名称:value
关于如何实现目标的任何建议/指导.
要清除ASP.NET中的cookie,您需要设置一个具有相同名称且具有过期时间的新cookie.
您可以为此使用 jquery cookie 脚本。
<a href="" onclick="removeCookie();">logout button</a>
function removeCookie(){
$.cookie('cookiename', '');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6275 次 |
| 最近记录: |