public async Task <IHttpActionResult> RemoveLogin(RemoveLoginBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } IdentityResult result; if (model.LoginProvider == LocalLoginProvider) { result = await UserManager.RemovePasswordAsync(User.Identity.GetUserId()); } else { result = await UserManager.RemoveLoginAsync(User.Identity.GetUserId(), new UserLoginInfo(model.LoginProvider, model.ProviderKey)); } if (!result.Succeeded) { return(GetErrorResult(result)); } return(Ok()); }
public async Task <IHttpActionResult> RemoveLogin(RemoveLoginBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } IdentityResult result = await IdentityManager.Logins.RemoveLoginAsync(User.Identity.GetUserId(), model.LoginProvider, model.ProviderKey); IHttpActionResult errorResult = GetErrorResult(result); if (errorResult != null) { return(errorResult); } return(Ok()); }
public async Task <IHttpActionResult> RemoveLogin(RemoveLoginBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if ((await IdentityStore.Context.Logins.GetLogins(User.Identity.GetUserId())).Count <= 1) { return(BadRequest("At least one login must remain for the account.")); } if (!await IdentityStore.RemoveLogin(User.Identity.GetUserId(), model.LoginProvider, model.ProviderKey)) { return(BadRequest("Failed to remove the login.")); } return(OK()); }
public async Task <IHttpActionResult> RemoveLogin(RemoveLoginBindingModel model) { if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } IdentityResult result; if (model.LoginProvider == AccountController.LocalLoginProvider) { result = await this.UserManager.RemovePasswordAsync(this.User.Identity.GetUserId()); } else { result = await this.UserManager.RemoveLoginAsync( this.User.Identity.GetUserId(), new UserLoginInfo(model.LoginProvider, model.ProviderKey)); } return(!result.Succeeded ? this.GetErrorResult(result) : this.Ok()); }
public async Task <IHttpActionResult> RemoveLogin(RemoveLoginBindingModel model) { IdentityResult result; if (model.LoginProvider == LocalLoginProvider) { result = await this.UserManager.RemovePasswordAsync(this.User.Identity.GetUserId()); } else { result = await this.UserManager.RemoveLoginAsync( this.User.Identity.GetUserId(), new UserLoginInfo(model.LoginProvider, model.ProviderKey)); } if (!result.Succeeded) { return(this.GetErrorResult(result)); } return(this.Ok()); }
public async Task <IHttpActionResult> RemoveLogin(RemoveLoginBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } IdentityUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); IdentityResult result; if (model.LoginProvider == LocalLoginProvider) { if (user.Logins.Count == 0) { return(InternalServerError(new Exception("This is users only account, if removal is needed, add external account first"))); } result = await UserManager.RemovePasswordAsync(User.Identity.GetUserId()); } else { if (String.IsNullOrEmpty(user.PasswordHash) && user.Logins.Count < 2) { return(InternalServerError(new Exception("This is users only account and therefore cant be deleted"))); } result = await UserManager.RemoveLoginAsync(User.Identity.GetUserId(), new UserLoginInfo(model.LoginProvider, model.ProviderKey)); } IHttpActionResult errorResult = GetErrorResult(result); if (errorResult != null) { return(errorResult); } return(Ok()); }
public async Task<IHttpActionResult> RemoveLogin(RemoveLoginBindingModel model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } IdentityResult result; if (model.LoginProvider == LocalLoginProvider) { result = await UserManager.RemovePasswordAsync(User.Identity.GetUserId()); } else { result = await UserManager.RemoveLoginAsync(User.Identity.GetUserId(), new UserLoginInfo(model.LoginProvider, model.ProviderKey)); } if (!result.Succeeded) { return GetErrorResult(result); } return Ok(); }
public override Task <IHttpActionResult> RemoveLogin(RemoveLoginBindingModel model) { return(base.RemoveLogin(model)); }