Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        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());
        }
Exemplo n.º 6
0
        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();
        }
Exemplo n.º 8
0
 public override Task <IHttpActionResult> RemoveLogin(RemoveLoginBindingModel model)
 {
     return(base.RemoveLogin(model));
 }