首页 新闻 搜索 专区 学院

<authentication mode="Forms">登陆成功后票据信息放在cooke一个小时,关闭页面,再打开又回到登陆页面

0
悬赏园豆:20 [已解决问题] 解决于 2012-03-15 14:58

<authentication mode="Forms">登陆成功后票据信息放在cooke一个小时,关闭页面,再打开又回到登陆页面、

 

我的代码,配置如下。    <authentication mode="Forms">
      <forms path="/" loginUrl="login.aspx" protection="All" name="p_houtai" defaultUrl="/"/>
    </authentication>

验证成功后,

string userData = GetUserData(ds);
        FormsAuthentication.SetAuthCookie(userData, false);
        FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, username, DateTime.Now, DateTime.Now.AddHours(1.0), false, userData);
        string str2 = FormsAuthentication.Encrypt(ticket);
        HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, str2);
        HttpContext.Current.Response.Cookies.Add(cookie);

     Response.Redirect("index.aspx");

关闭这个页面后,再开index.aspx又回到登陆页面了

问题补充:

FormsAuthentication.SetAuthCookie(userData, true);这段代码是不是可以不要

盖房男后宫妇女777的主页 盖房男后宫妇女777 | 初学一级 | 园豆:90
提问于:2012-03-15 11:19
< >
分享
最佳答案
0

 
cookie.Expires = DateTime.Now.AddHours(1);你在箭头的地方添加这句话,就可以了。

收获园豆:12
rains | 小虾三级 |园豆:860 | 2012-03-15 14:11

可以了

盖房男后宫妇女777 | 园豆:90 (初学一级) | 2012-03-15 14:27

FormsAuthentication.SetAuthCookie(userData, true);这段代码是不是可以不要

盖房男后宫妇女777 | 园豆:90 (初学一级) | 2012-03-15 14:45
其他回答(4)
0

如果想再开时不需要登录,需要:

FormsAuthentication.SetAuthCookie(userData, true);
收获园豆:5
dudu | 园豆:38908 (高人七级) | 2012-03-15 12:09

true还是不行

支持(0) 反对(0) 盖房男后宫妇女777 | 园豆:90 (初学一级) | 2012-03-15 13:30

@路旭辉: FormsAuthenticationTicket中也要设置为true

支持(0) 反对(0) dudu | 园豆:38908 (高人七级) | 2012-03-15 13:37

@dudu: 

还是不行,是不是要先删除原来的cookie
支持(0) 反对(0) 盖房男后宫妇女777 | 园豆:90 (初学一级) | 2012-03-15 13:59

@路旭辉: 

简单一些

1. web.config

<authentication mode="Forms">
<forms path="/" loginUrl="login.aspx" protection="All" name="p_houtai" defaultUrl="/" timeout="60"/>
</authentication>

2. 代码

FormsAuthentication.SetAuthCookie(userData, true);

后面的代码不需要。

支持(0) 反对(0) dudu | 园豆:38908 (高人七级) | 2012-03-15 14:13

@dudu:

水淼 cookie.Expires = DateTime.Now.AddHours(1);你在箭头的地方添加这句话,就可以了

 

   这个方法可以 

支持(0) 反对(0) 盖房男后宫妇女777 | 园豆:90 (初学一级) | 2012-03-15 14:27

@路旭辉: FormsAuthentication.SetAuthCookie(userData, true);可以不要

支持(0) 反对(0) dudu | 园豆:38908 (高人七级) | 2012-03-15 14:45
0

服务器端超时了

56180825 | 园豆:1422 (小虾三级) | 2012-03-15 12:25
0

1、没有写入cookie:Response.Cookies.Add(cookie)

2、cookie被清除了

智伟 | 园豆:266 (菜鸟二级) | 2012-03-15 13:13
0

    HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, str2);
        HttpContext.Current.Response.Cookies.Add(cookie);

必須制定cookie的過期時間。

收获园豆:3
無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-15 14:22

FormsAuthentication.SetAuthCookie(userData, true);这段代码是不是可以不要

支持(0) 反对(0) 盖房男后宫妇女777 | 园豆:90 (初学一级) | 2012-03-15 14:45

@路旭辉: 可以。如果加了 你的 寫cookie的代碼 ,就不需要了。如果沒有加 ,就需要。

支持(0) 反对(0) 無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-15 14:48

@無限遐想: 

form验证的核心可能是如果浏览器不支持cookie,就用url验证。

支持(0) 反对(0) 盖房男后宫妇女777 | 园豆:90 (初学一级) | 2012-03-15 14:50

@路旭辉: 如果浏览器不支持cookie,就用url验证。這個只需要在web.config中配置就好了。

支持(0) 反对(0) 無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-15 14:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册