c# - 如何在 _LoginPartial.cshtml 中获取用户名(不是电子邮件)? - ASP.NET 标识

标签 c# asp.net-mvc asp.net-identity

我试过这样得到它:

User.Identity.GetUserName()

像这样:

User.Identity.Name

但我收到的是电子邮件,而不是 UserName 属性。

最佳答案

您无需更改 _LoginPartial.cshtml 文件中的任何内容。相反,在 AccountController 中将您的注册帖子从

    public async Task<IActionResult> Register(RegisterViewModel model, string returnUrl = null)
    {
        ViewData["ReturnUrl"] = returnUrl;
        if (ModelState.IsValid)
        {
            var user = new ApplicationUser { UserName = model.Email, Email = model.Email };

为此:

    public async Task<IActionResult> Register(RegisterViewModel model, string returnUrl = null)
    {
        ViewData["ReturnUrl"] = returnUrl;
        if (ModelState.IsValid)
        {
            var user = new ApplicationUser { UserName = model.UserName, Email = model.Email };

请记住,如果您已经运行了第一个代码并在您的数据库中注册了一个试用用户,那么用户名将设置为电子邮件,因此请从您的 AspNetUser 表中删除该条目或适本地更新用户名和规范化用户名字段。

更新:如此处所述gethub Entity API 根据 NormalizedUserName 检查登录。因此,当您在 RegisterViewModel 上向用户提供输入不是电子邮件的值时,您需要删除 LoginViewModel 中的 [EmailAddress] 验证。

关于c# - 如何在 _LoginPartial.cshtml 中获取用户名(不是电子邮件)? - ASP.NET 标识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31246255/

相关文章:

c# - 不同线程上的新表单

c# - 写入然后从 MemoryStream 读取

c# - 无法从 IIS 7.5 上托管的 ASP.NET MVC 项目连接到 mysql 数据库

c# - Entity Framework 4.2,无法设置标识插入

c# - 我如何处理 MEF 中具有相同依赖项的不同版本的模块?

c# - 在带有子窗体的 WinForms 应用程序中进行依赖注入(inject)

ASP.NET MVC : Weird characters in error page

c# - 如何从身份 2.2.1 中的表 AspNetUsers 添加另一个属性到 User.Identity

c# - Entity Framework 在母版页上找不到 "User"?

asp.net - 移动应用程序 Web API 身份验证