c# - 在表单例份验证中获取当前的 MembershipUser

标签 c# asp.net c#-4.0

我想从我的页面获取当前的 MembershipUser

Membership.GetUser();

返回空值。

无法使用

HttpContext.Current.User.Identity.Name

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

如何获取当前用户?

更新:成员资格提供程序是 SqlMembershipProvider

最佳答案

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

  2. 如果您正在调用 Membership.GetUser() 重载之一,它采用用户名并返回 null,则该用户不存在于 Membership 数据源中(或者我们遇到了错误)。轻松验证这一点的一种方法是尝试使用相同用户名的 Membership.CreateUser()。如果这不会因为重复用户而引发错误,那么您就知道该用户从一开始就不存在。

  3. Membership.GetUser() 不应该为匿名用户工作。 Membership 没有内置支持来处理这种情况。

关于c# - 在表单例份验证中获取当前的 MembershipUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6329181/

相关文章:

asp.net - 抓取由 asp.net/AJAX (__doPostBack) 管理的 html 分页

c# - 从 SQL Server 代理(作业)运行 C# 控制台应用程序?

C# Datagridview Checkbox Checked 事件 - 多行?

c# - 如何在表单应用程序中显示控制台输出/窗口?

c# - 将 list<自定义对象> 转换为 list<对象>

javascript - 允许 ASP.NET Framework 上的特定按钮上的 Javascript Onbeforeunload 函数

c# - 是否可以拥有一个包含特定长度子项列表的模型对象?

asp.net - asp.net 中的 css 垂直制表符

c# - 客户端兼容性检查管理

mysql - 从 C# 调用 mysql 存储过程?