我用Forms认证,用下面的代码将cookie的失效时间设置为3天 if( ValidateUser( txtUserName.Text , txtPassword.Text ))
{
HttpCookie authenticationCookie=FormsAuthentication.GetAuthCookie(txtUserName.Text,true);
authenticationCookie.Expires=DateTime.Now.AddDays(3);//3天
Response.Cookies.Add(authenticationCookie);
Response.Redirect(FormsAuthentication.GetRedirectUrl(txtUserName.Text,true));
} 但是实际运行结果是:cookie的失效时间仍然是30分钟(这个是我在web.config中设置的),而不是3天 。 为什么那?该如何解决,请指教,谢谢
{
HttpCookie authenticationCookie=FormsAuthentication.GetAuthCookie(txtUserName.Text,true);
authenticationCookie.Expires=DateTime.Now.AddDays(3);//3天
Response.Cookies.Add(authenticationCookie);
Response.Redirect(FormsAuthentication.GetRedirectUrl(txtUserName.Text,true));
} 但是实际运行结果是:cookie的失效时间仍然是30分钟(这个是我在web.config中设置的),而不是3天 。 为什么那?该如何解决,请指教,谢谢
在代码中写应该可以覆盖web.config中的设置的。
web.config内设置了平滑过期slidingExpiration 为false
还是无效,请高手帮忙,谢谢
根据那些入门“范例”来写实际的应用程序者有些“可怜”,那些范例往往只是用来体验几行代码、一个简单控件的,一旦实际应用根本不是那样编程的,因为你的程序是在没有建立“确保可靠运行”的编程技术下开发的。建立一个观念——web应用平均每5分钟必重启一次,以此前提开发你的应用软件,不要以为一定可以找到特别高级、不会重启的web应用服务器环境。
/// 添加cookie或更改cookie的值,不需要判断cookie是否存在的
/// </summary>
/// <param name="cookieName">cookie的名字</param>
/// <param name="value">cookie的值</param>
/// <param name="days">过期的天数,可以是负数</param>
public static void Add(string cookieName, string value, int days)
{
HttpCookie cookie = new HttpCookie(cookieName);
cookie.Value = value;
cookie.Expires = DateTime.Now.AddDays(days);
HttpContext.Current.Response.Cookies.Add(cookie);
}这是添加的方法,同样在web.config文档中设置一下过期时间
下去找文件,看是否3天后失效?
先把错误缩小一个范围首先.你写完cookie之后
再读出这个cookie的值和失效时间
是否是正确的如果这一步不正确.那么。你可以
代码创建一个cookie,直接把asp.net的cookie复制一下,
好像就一个hash值和一个名字. 很简单的.
再自己把这个cookie写进去.再去测试如果是正确的.那么再使用你的IE在半小时测试一下
Cookie是可以用第三方插件删除的.(清除上网痕迹)
我认为极大的可能是被删掉了