asp.net - 如何在MVC Identity中使用 “UserName”而不是 “Email”登录?

标签 asp.net asp.net-mvc razor asp.net-identity

我需要设置登录名以使用用户名而不是电子邮件地址,如何更改它?

最佳答案

它实际上是使用电子邮件地址作为用户名,因此在ASPNetUsers表中,您将看到用户名和电子邮件字段以及电子邮件地址。

进入AccountController,查找Register方法(POST)。

更改此:

var user = new ApplicationUser { UserName = model.Email, Email = model.Email};

对此:
var user = new ApplicationUser
            {
                UserName = model.UserName,
                Email = model.Email
            };

然后进入Login.cshtml,并将所有相应的电子邮件模型字段更改为username。

最后,进入AccountController中的Login方法(POST),并将model.Email更改为model.UserName。
var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, 
             model.RememberMe, shouldLockout: false);

您还必须在AccountViewModels.cs中进行更改,以引入新的UserName属性。

关于asp.net - 如何在MVC Identity中使用 “UserName”而不是 “Email”登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33069201/

相关文章:

c# - 由于 FileStream.Create UnauthorizedAccessException 正在寻找解决方法

c# - Url.Action 在布局页面上不起作用

c# - 在 MVC cshtml 中每行显示三列

c# - ASP.NET 中的单选按钮

c# - ASP.NET C# 必须声明标量变量

jquery - Asp.Net 中的 Bootstrap 3 数据表样式以某种方式被覆盖

javascript - 在同一 View 中使用 javascript 调用在 View 中创建的函数

asp.net - 如何上传 ASP.NET Repeater 项目中 FileUpload 控件中的所有文件?

asp.net-mvc - IIS7 上的损坏图像

asp.net-mvc - 在asp.net中身份模拟="true"时如何获取Windows用户名?