例如:如果我正在检索User.Identity.Name,它是来自.ASPXAUTH cookie还是使用我的会员提供程序从数据库中检索?
我访问User.Identity时是否有任何数据库请求?
谢谢.
编辑:现在我很确定它来自身份验证票证cookie,但找不到任何官方文档来确认这一点.任何人?
这应该可以回答你的问题...
“表单身份验证票证不仅包括用户的身份,还包含有助于确保令牌完整性和安全性的信息。” 摘自以下 Microsoft 文章:
http://www.asp.net/security/tutorials/forms-authentication-configuration-and-advanced-topics-vb
除了该解释之外,观察 ASP.NET 行为还支持以下结论:用户名实际上存储在 ASPXAUTH cookie 中:在用户经过身份验证后,ASP.NET 不会在后续页面请求中访问数据库。您可以自己证明这一点,就像我所做的那样,通过运行 SQL Profiler 来监视 ASP.NET 应用程序使用的数据库。
另请注意,用户名和身份验证票证数据不存储在会话状态中。除了引发安全问题之外,这种实现还会导致 ASP.NET 成员资格在会话状态被禁用时中断。这是另一个堆栈溢出答案,表明表单身份验证(成员身份)数据和会话状态彼此无关:
FormsAuthentication.SetAuthCookie() 是否创建基于会话的 cookie?
该答案还链接到 MSDN 文章,此处详细解释了 ASPXAUTH cookie,尽管我上面引用的文章似乎更最新。
| 归档时间: |
|
| 查看次数: |
2748 次 |
| 最近记录: |