gpt4 book ai didi

asp.net - HttpContext.Current.User.Identity.Name 返回错误的用户名

转载 作者:行者123 更新时间:2023-12-04 20:43:57 26 4
gpt4 key购买 nike

它是平原 ASP.NET 应用程序使用 SQL 成员资格提供程序 用于身份验证。虽然应用程序大部分时间运行良好。我们最近看到用户提示说他们看到了其他用户的帐户。

我很确定并再次确认我直接消费 HttpContext.Current.User.Identity.Name 在代码中获取用户信息。因此,在重负载下,我会返回不同的用户名。

有没有人遇到过类似的问题?有可能的原因吗?

应用程序在 ASP.NET 4.0 中运行,Web 窗体,无缓存,未在代码中处理任何 cookie,没有嗅探 cookie 的 Javascript。

我看到这两个链接大致相同,但没有发布答案。

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

最佳答案

表单例份验证不应与成员(member)资格提供者过多相关。

FormsAuthentication 将签名的用户信息保存到 .ASPXAUTH曲奇饼。当下一个请求到达服务器时,它会解密 cookie 值并将其设置回 HttpContext.Current.User.Identity.Name .它使用 MachineKey 进行加密\解密。然后它基于 FormsAuthenticationTicket 创建 FormsIdentity 对象保存用户名的对象。因此,您的用户名存储在客户端上。整个这个过程不包括使用成员(member)提供者。

只有当您为用户登录时,Forms Authentication 才使用 Membership,然后基于登录用户 FormsAuthentication 创建一个带有 UserName 的 cookie。

关于您的问题,您需要查看.ASPXAUTH具有无效用户名的那些请求的 cookie 值。您可以尝试记录这些错误请求的 cookie 信息,然后您可以解密它们以从请求中获取用户名信息。或者,如果您可以在本地重现它,您可以禁用 Forms cookie 加密 ( protection element ),然后检查它是否存在错误请求的值

关于asp.net - HttpContext.Current.User.Identity.Name 返回错误的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21208408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com