with recuperar password net mvc forgot contraseƱa asp and c# asp.net-mvc password-protection

c# - recuperar - reset password asp.net identity



ASP.NET MVC Identity login sin contraseƱa (1)

Solo necesitas usar el administrador de usuarios para encontrar al usuario por su nombre. Si tienes un registro, simplemente regístrate.

public ActionResult StupidCompanyLogin() { return View(); } [HttpPost] //[ValidateAntiForgeryToken] - Whats the point? F**k security public async Task<ActionResult> StupidCompanyLogin(string name) { var user = await UserManager.FindByNameAsync(name); if (user != null) { await SignInManager.SignInAsync(user, true, true); } return View(); }

Se me ha asignado la tarea de modificar una aplicación MVC de ASP.NET de tal manera que navegar por myurl? Username = xxxxxx iniciaría sesión automáticamente en el usuario xxxxxx, sin pedir contraseñas.

Ya dejé muy en claro que esta es una idea terrible por muchas razones y escenarios relacionados con la seguridad, pero las personas a cargo están determinadas. El sitio no estaría disponible públicamente.

Entonces: ¿hay alguna forma de iniciar sesión sin contraseña, por ejemplo, extendiendo Microsoft.AspNet.Identity.UserManager y modificando AccountController?

Algún código:

var user = await _userManager.FindAsync(model.UserName, model.Password); if (user != null && IsAllowedToLoginIntoTheCurrentSite(user)) { user = _genericRepository.LoadById<User>(user.Id); if (user.Active) { await SignInAsync(user, model.RememberMe);

_userManager contiene una instancia de Microsoft.AspNet.Identity.UserManager.

y SignInAsync ():

private async Task SignInAsync(User user, bool isPersistent) { AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); var identity = await _userManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); if (user.UserGroupId.IsSet()) user.UserGroup = await _userManager.Load<UserGroup>(user.UserGroupId); //adding claims here ... // AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = isPersistent }, new CustomClaimsIdentity(identity)); }

AuthenticationManager sería OwinSecurity.