在Forms身份validation中获取当前的MembershipUser
我想从我的页面获取当前的MembershipUser
。
Membership.GetUser();
返回null。
不能用
HttpContext.Current.User.Identity.Name
因为它根据我的配置返回我的配置文件名称以获取用户名。
我如何获得当前用户?
更新:成员资格提供程序是SqlMembershipProvider
-
Membership.GetUser()仅适用于经过身份validation的用户。 否则,它将返回null。 要validation您是否正在处理经过身份validation的请求,请在页面上调用“User.Identity.IsAuthenticated”。 如果您有经过身份validation的请求,但Membership.GetUser()仍返回null,则表示在Membership数据源中找不到与经过身份validation的用户关联的用户名。 使用“User.Identity.Name”validation经过身份validation的用户的用户名。
-
如果你正在调用其中一个使用用户名并且返回null的Membership.GetUser()重载,那么该成员数据源中不存在该用户(或者我们有一个错误)。 轻松validation这一点的一种方法是尝试使用相同用户名的Membership.CreateUser()。 如果由于重复的用户而没有引发错误,那么您就知道用户从未存在过。
-
Membership.GetUser()应该从未为匿名用户工作过。 处理此案例时,会员资格中没有内置支持。
你试过Page.User.Identity.Name吗?
Membership.GetUser();
完全有效,你可能在这里有配置问题,仔细检查你的web.config并确保一切正确,特别是表单部分。