我使用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,他们建议的两种技术是:

  1. 使用WebConfiguration Manager阅读相关配置部分并获取超时值.

  2. 使用FormsAuthentication.GetAuthCookie创建一个cookie,使用FormsAuthentication.Decrypt解密它,然后判断生成的FormsAuthenticationTicket.

或者升级到.第四网.x,其中有FormsAuthentication.Timeout个属性.

更多信息请参见this question

Asp.net相关问答推荐

'Access-Control-Allow-Origin' 标头包含多个值 '*, *',但只允许一个

威胁已经被清除了

如何从网页 (asp.net) 启动 EXE

如何在集线器类之外获取 SignalR 用户连接 ID?

如何在不使用 Session 的情况下在 ASP.net 中的页面之间传递值

RestSharp 不反序列化 JSON 对象列表,始终为 Null

如何确定 web.config 中的编译 debug="true"

学习什么 - Ruby on Rails 或 ASP .NET MVC...鉴于熟悉 ASP .NET

如何使用 app_GlobalResource 或 app_LocalResource?

在 asp.net 中将 JSON 转换为 .Net 对象时出错

ASP.NET MVC 4 的 Windows 身份验证 - 它是如何工作的,如何测试它

asp.net 网站上的第一页加载缓慢

使用 ASP.NET 进行重定向后获取

路由模板分隔符/不能连续出现 - 属性路由问题

ASP.NET 发布try 复制不存在的文件

GridView 按代码隐藏列

DateTime.Parse 和 Convert.ToDateTime 之间有什么区别?

ModalPopupExtender OK 按钮单击事件未触发?

获取 POST 变量

静态变量是线程安全的吗? C#