在Forms身份验证中获取当前的MembershipUser

nav*_*een 2 c# asp.net c#-4.0

我想MembershipUser从我的页面获取最新信息.

Membership.GetUser();
Run Code Online (Sandbox Code Playgroud)

返回null.

不能用

HttpContext.Current.User.Identity.Name
Run Code Online (Sandbox Code Playgroud)

因为它根据我的配置返回我的个人资料名称以获取用户名.

我如何获得当前用户?

更新:会员提供商是 SqlMembershipProvider

Sau*_*abh 10

  1. Membership.GetUser()仅适用于经过身份验证的用户.否则,它将返回null.要验证您是否正在处理经过身份验证的请求,请在页面上调用"User.Identity.IsAuthenticated".如果您有经过身份验证的请求,但Membership.GetUser()仍然返回null,则表示在Membership数据源中找不到与经过身份验证的用户关联的用户名.使用"User.Identity.Name"验证经过身份验证的用户的用户名.

  2. 如果您正在调用其中一个使用用户名并且返回null的Membership.GetUser()重载,那么该成员数据源中不存在该用户(或者我们有一个错误).轻松验证这一点的一种方法是尝试使用相同用户名的Membership.CreateUser().如果由于重复的用户而没有引发错误,那么您就知道用户从未存在过.

  3. Membership.GetUser()应该从未为匿名用户工作过.处理此案件时,会员资格中没有内置支持.