每当我使用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相关问答推荐

.Net Framework:w3wp.exe 中的异常

如何在 ASP.NET 全球化中配置不变文化?

/应用程序中的服务器错误. ASP.NET

'Access-Control-Allow-Origin' 标头包含多个值 '*, *',但只允许一个

为 Web 请求实现速率限制算法的最佳方法是什么?

返回 HttpResponseMessage 时的 WebAPI Gzip

相当于服务器端的 ASP.NET 包括

最佳服务器端 .NET PDF 编辑库

如何设置asp.net身份cookie过期时间

如何在同一解决方案中从 MVC 项目调试 Web API 项目

如何从 JS 访问 ViewBag

跟踪点有什么用途?

如何避免 ASP.NET MVC 中的 HttpRequestValidationException 呈现导致异常的相同视图

Ashx 文件中的 HttpContext.Current.Session 为空

Application_Start 和 Application_OnStart 之间的区别

通过 CultureInfo 格式化字符串

在 ASP.NET Web API 2 中禁用 *all* 异常处理(为我自己腾出空间)?

在.net的内存数据库中

Windows 身份验证在本地 IIS 7.5 上不起作用.错误 401.1

Appdomain 回收究竟是什么