我想从我的页面获取当前的 MembershipUser
。
Membership.GetUser();
返回空值。
无法使用
HttpContext.Current.User.Identity.Name
因为它根据我的配置返回我的个人资料名称,以获取用户名。
如何获取当前用户?
更新:成员资格提供程序是 SqlMembershipProvider
最佳答案
Membership.GetUser() 仅适用于经过身份验证的用户。否则,它将返回 null。要验证您正在处理经过身份验证的请求,请在页面上调用“User.Identity.IsAuthenticated”。如果您有一个经过身份验证的请求,但 Membership.GetUser() 仍返回 null,则这意味着在 Membership 数据源中找不到与经过身份验证的用户关联的用户名。使用“User.Identity.Name”验证经过身份验证的用户的用户名。
如果您正在调用 Membership.GetUser() 重载之一,它采用用户名并返回 null,则该用户不存在于 Membership 数据源中(或者我们遇到了错误)。轻松验证这一点的一种方法是尝试使用相同用户名的 Membership.CreateUser()。如果这不会因为重复用户而引发错误,那么您就知道该用户从一开始就不存在。
Membership.GetUser() 不应该为匿名用户工作。 Membership 没有内置支持来处理这种情况。
关于c# - 在表单例份验证中获取当前的 MembershipUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6329181/