每当我使用visual studio 2013 express for web创建一个新的应用程序,并使用个人帐户身份验证,点击"注册"按钮时,我注意到它实现了"邮箱"而不是"用户名",在LoginViewModel中也是如此,因为它使用邮箱而不是用户名登录.我怎样才能将其更改为使用用户名而不是默认的邮箱,而不会出现问题?我还想知道如何将字符串类型的默认"guid"转换为"id"(整数类型).

推荐答案

接受答案中的链接问题描述了如何使用邮箱而不是用户名,OP需要用户名而不是我在MVC项目的Identity 2.0中寻找的邮箱.

如果其他人通过谷歌搜索到这里,这其实很容易做到.如果你看一下register post操作,它只是将用户名设置为邮箱地址.所以

将用户名添加到RegisterViewModel并将其添加到register视图.

<div class="form-group">
        @Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
        <div class="col-md-10">
            @Html.TextBoxFor(m => m.UserName, new { @class = "form-control", @placeholder = "Username or email" })
        </div>
</div>

在AccountController上的Register Post Action中,将用户名设置为ViewModel的用户名,将邮箱设置为ViewModel的邮箱.

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

Asp.net相关问答推荐

如何在 asp.net 服务器中使用字体

禁用托管优化并重新启动调试实际上在 Visual Studio 中更改了哪些设置?

DBSet 不包含 Where 的定义

在每个对象上设置 ClientIDMode = Static 是否有任何缺点(在母版页的 maincontent 上设置)

如何在没有 Select 按钮的情况下在 GridView 中实现全行 Select ?

ASP.NET Web 应用程序 (.NET Framework) 与 ASP.NET Core Web 应用程序 (.NET Framework) 之间的差异

捕获对 ASP.NET ASMX Web 服务的 SOAP 请求

Web api 不支持 POST 方法

Directory.Exists 不适用于网络路径

倒带请求正文流

解析器错误:无法创建类型

在 ASP.NET 中实现 404 的最佳方法

发布网站项目时临时路径太长

如何将数据集转换为数据表

无法在 IIS 中启动网站 - W3SVC 正在运行

会员生成密码 仅限字母数字密码?

ASP.net 网站中的 C# 密码文本框

ConfigurationManager.AppSettings 缓存

.Net 上是否有 URL 验证器?

MVC4 中 Global.asax.cs 页面中的问题