我使用aspx和c#来设置登录的身份验证cookie.
FormsAuthentication.SetAuthCookie(UserName, True)
我想在同一个cookie中存储更多信息.我可以向该身份验证cookie添加值,还是必须使用第二个http cookie?
基本上,我正在寻找存储用户的Id
,这样我就可以使用用户表行键访问数据库
谢谢
我使用aspx和c#来设置登录的身份验证cookie.
FormsAuthentication.SetAuthCookie(UserName, True)
我想在同一个cookie中存储更多信息.我可以向该身份验证cookie添加值,还是必须使用第二个http cookie?
基本上,我正在寻找存储用户的Id
,这样我就可以使用用户表行键访问数据库
谢谢
您可以将用户数据添加到FormsAuthenticationTicket,然后自己生成Cookie.
在the MSDN documentation for FormsAuthenticationTicket中有一个例子.
EDIT
请注意,在创建票证时,需要设置超时时间,通常情况下,您希望与web中配置的值相同.配置.不幸的是,在Framework 3.5或更早版本中,FormsAuthentication
类没有公开这个超时.对于解决方法,请使用回复this connect feedback item中描述的技术之一.
UPDATE个
遗憾的是,连接反馈项已经不存在了.希望你能简单描述一下这些技术是什么.
是的,遗憾的是微软放弃了历史悠久的Connect项目.IIRC,他们建议的两种技术是:
使用WebConfiguration Manager阅读相关配置部分并获取超时值.
使用FormsAuthentication.GetAuthCookie
创建一个cookie,使用FormsAuthentication.Decrypt
解密它,然后判断生成的FormsAuthenticationTicket
.
或者升级到.第四网.x,其中有FormsAuthentication.Timeout
个属性.
更多信息请参见this question