Kus*_*sek 5 asp.net httpcontext
它是使用SQL Membership Provider进行身份验证的Plain ASP.NET应用程序.虽然应用程序在大多数时间运行良好.我们最近看到用户抱怨他们正在看到其他用户帐号.
我很确定并再次确认我直接在代码中使用HttpContext.Current.User.Identity.Name来获取用户信息.因此,在重负载下,我会返回不同的用户名.
有没有人遇到类似的问题?有可能吗?
应用程序运行在ASP.NET 4.0,Web窗体,无缓存,代码中没有处理任何cookie,没有嗅探cookie的Javascripts.
我看到这两个链接大致相同但没有回答.
http://bytes.com/topic/asp-net/answers/324385-serious-issue-httpcontext-current-user-identity-name
http://www.experts-exchange.com/Web_Development/Miscellaneous/Q_21105924.html
表单身份验证不应与会员提供商有太多关联。
FormsAuthentication 将签名的用户信息保存到.ASPXAUTHcookie 中。当下一个请求到达服务器时,它会解密 cookie 值并将其设置回HttpContext.Current.User.Identity.Name。它使用 MachineKey 进行加密/解密。然后它根据FormsAuthenticationTicket保存用户名的对象创建 FormsIdentity 对象。因此,您的用户名存储在客户端上。整个过程不包括会员提供商的使用。
仅当您登录用户时,表单身份验证才使用成员资格,然后基于登录的用户 FormsAuthentication 创建一个带有 UserName 的 cookie。
关于您的问题,您需要检查.ASPXAUTH那些用户名无效的请求的 cookie 值。您可以尝试记录这些错误请求的 cookie 信息,然后可以解密它们以从请求中获取用户名信息。或者,如果您可以在本地重现它,您可以禁用 Forms cookie 加密(保护元素),然后检查它的值是否有错误请求