asp.net - HttpContext.Current.User.Identity.Name 总是 string.Empty

标签 asp.net httpcontext custom-membershipprovider iidentity

嗨,我使用自定义 MembershipProvider。

我想知道应用场景中的当前用户名,但是当我尝试访问 HttpContext.Current.User.Identity.Name 时,它​​总是返回 string.Empty。

if (Membership.ValidateUser(tbUsername.Text, tbPassword.Text))
{
    FormsAuthentication.SetAuthCookie(tbUsername.Text, true);
    bool x = User.Identity.IsAuthenticated; //true
    string y = User.Identity.Name; //""
    FormsAuthentication.RedirectFromLoginPage(tbUsername.Text, cbRememberMe.Checked);
}

我错过了什么吗?

最佳答案

HttpContext.Current.User.Identity.Name 的值通过调用 RedirectFromLoginPage 设置.您可以从 HttpContext.Current.User.Identity.Name 获取当前用户 ID一旦您被重定向到新页面。我不确定为什么您需要在这种情况下通过 User 属性访问用户名,您不能只使用 tbUsername.Text 中包含的值吗?

关于asp.net - HttpContext.Current.User.Identity.Name 总是 string.Empty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1056487/

相关文章:

c# - 简单的 JavaScript 问题,在 IE 中返回 NULL,但在 FireFox 中工作!

asp.net - 将 asp.net 身份验证与 servicestack 结合使用

asp.net - 如何使用 Ninject 注入(inject)一个 asp.net (mvc2) 自定义成员提供程序?

c# - ASP.NET:带有自定义用户表的自定义 MembershipProvider

c# - 对齐标题文本中心 asp :GridView

c# - command.ExecuteScalar 没有返回我知道存在的值

wcf - WCF 中的 HttpContext

c# - 使用 httpcontext 打开附件

asp.net - 以编程方式刷新/更新 HttpContext.User