son - Use el nombre de usuario en lugar del correo electrónico para la identidad en Asp.net mvc5
web forms c# tutorial (2)
Cada vez que creo una nueva aplicación con visual studio 2013 express para web y usando la autenticación de cuentas individuales y presiono el botón de registro, noto que implementa ''Email'' en lugar de ''Username'' y lo mismo está en el LoginViewModel, ya que usa Email to Inicie sesión en lugar de Nombre de usuario. ¿Cómo puedo cambiar esto para usar el nombre de usuario en lugar del correo electrónico predeterminado sin problemas? También me gustaría saber cómo convertir el ''guid'' predeterminado que es un tipo de cadena a ''id'' (tipo entero).
La pregunta vinculada en la respuesta aceptada describe cómo utilizar el correo electrónico en lugar del nombre de usuario, OP quería el nombre de usuario en lugar del correo electrónico, que es lo que estaba buscando en Identity 2.0 en un proyecto MVC.
En caso de que alguien más llegue desde una búsqueda en Google, es muy fácil hacerlo. Si nos fijamos en la acción de publicación de registro, simplemente está configurando el nombre de usuario en la dirección de correo electrónico. Asi que.........
Agregue UserName al RegisterViewModel y agréguelo a la vista de registro.
<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>
En la Acción de registro en el AccountController, establezca el Nombre de usuario en el Nombre de usuario de ViewModel y el Correo electrónico en el Correo electrónico de ViewModel.
var user = new ApplicationUser { UserName = model.UserName, Email = model.Email };
Para hacer un email como no único:
Configure abajo en IdentityConfig
manager.UserValidator = new UserValidator<ApplicationUser>(manager)
{
AllowOnlyAlphanumericUserNames = false,
RequireUniqueEmail = false
};