• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

关于FormsAuthenticationTicket的问题

dna_xp 2004-11-04 03:09:32
请问FormsAuthenticationTicket属性中Expiration、IsPersistent有什么关系。
...全文
601 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dna_xp 2004-11-09
我看身份验证票的过期时间,以cookie和FormsAuthenticationTicket的最短过期时间为准,而使用FormsAuthentication.RedirectFromLoginPage(userName,true)实际上是有系统自动给两个过期时间设置为50年,就这么会事,MSDN也没有写清楚,呵呵。
supersyd(达达)
如果你要使用角色的话,就不要使用FormsAuthentication.RedirectFromLoginPage(userName,true)这种形式发送cookie,需要自己写全FormsAuthenticationTicket的相关属性
回复
supersyd 2004-11-08
FormsAuthentication.RedirectFromLoginPage(userName,true);
加上这句话就可以写入cookie了.但是这样 角色就不好用了。
如何解决呢
回复
supersyd 2004-11-08
所谓的持久性就是默认的50年
记住密码的意思。
如果不用带角色的Form验证就可以在 IE临时文件 看到一个cookie 50年过期的
但用了带角色的验证后就没有cookie产生了
回复
supersyd 2004-11-08
dna_xp(dna)
我也有同样的问题,不能变为持久性的.
高手解答
回复
dna_xp 2004-11-08
所谓持久性,我看好像就是cookie和身份票的过期时间比较长的意思吧
回复
dna_xp 2004-11-08
看了上面的文章了,但还是有点问题。
我始终搞不清楚cookie的expires和FormsAuthenticationTicket的expiration的关系,我实验过了,即使把FormsAuthenticationTicket的设置成“持久性”、expiration设置成最大,再把cookie的expires设置成DateTime.Now.AddMinutes(1),好像最后过期时间由cookie的expires决定了。
回复
gshope 2004-11-04
http://dev.csdn.net/develop/article/18/18958.shtm
好好看看这篇文章
回复
dna_xp 2004-11-04
身份验证票过期和存放身份验证票的cookie的过期时间有什么关系
回复
dna_xp 2004-11-04
User并不能得到自定义ticket的userdate值。
回复
dna_xp 2004-11-04
一样的化,那么以哪个为准呢
回复
gshope 2004-11-04
一样的。
回复
gshope 2004-11-04
HttpContext.Current.User.Identity就是你要的用户信息,比如Ticket中的名称,就是HttpContext.Current.User.Identity.Name
回复
dna_xp 2004-11-04
forms验证过期和FormsAuthenticationTicket过期有什么不同吗?两者都是要重定向到登陆页面的吧
回复
gshope 2004-11-04
<forms>中timeout和你说的不是一回事情,它是说当你不关闭IE并且没有流揽新网页的情况下,forms验证在多长时间后过期。
回复
dna_xp 2004-11-04
System.Web.Security.FormsAuthenticationTicket ticket = new System.Web.Security.FormsAuthenticationTicket(2,"waley",DateTime.Now,DateTime.Now.AddMinutes(1d),true,"sfdf@dfd.com");
string s = System.Web.Security.FormsAuthentication.Encrypt(ticket);
System.Web.Security.FormsAuthentication.SetAuthCookie("waley",true);
Response.Redirect(System.Web.Security.FormsAuthentication.GetRedirectUrl("waley",true));

请问我怎么在其他页面中取得ticket?
System.Web.Security.FormsAuthentication.Decrypt(Request.Cookies[System.Web.Security.FormsAuthentication.FormsCookieName].Value)
以上的语句好像并不能得到这个ticket
回复
dna_xp 2004-11-04
那么<forms>中timeout设置后,那么FormsAuthenticationTicket中过期时间还有效码?
回复
gshope 2004-11-04
两个要结合起来用,当IsPersistent是true,那么Expiration就是cookie的过期时间,否则的话,无论
Expiration是什么值,只要一关IE,Forms验证就过期了。
回复
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-11-04 03:09
社区公告
暂无公告