コード例 #1
0
        public async Task <IHttpActionResult> RemoveLogin(RemoveLoginModel 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());
        }
コード例 #2
0
        public async Task <IdentityResult> RemoveLogin(IPrincipal user, RemoveLoginModel model)
        {
            if (model.LoginProvider == LocalLoginProvider)
            {
                return(await UserManager.RemovePasswordAsync(user.Identity.GetUserId()));
            }

            return(await UserManager.RemoveLoginAsync(user.Identity.GetUserId(), new UserLoginInfo(model.LoginProvider, model.ProviderKey)));
        }
コード例 #3
0
        public async Task <IHttpActionResult> RemoveLogin(RemoveLoginModel model)
        {
            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));
            }

            var errorResult = GetErrorResult(result);

            return(errorResult ?? Ok("External Login removed"));
        }
コード例 #4
0
        public async Task <IActionResult> RemoveLogin(RemoveLoginModel account)
        {
            ManageMessageId?message = ManageMessageId.Error;
            var             user    = await GetCurrentUserAsync();

            if (user != null)
            {
                var result = await _userManager.RemoveLoginAsync(user, account.LoginProvider, account.ProviderKey);

                if (result.Succeeded)
                {
                    await _signInManager.SignInAsync(user, isPersistent : false);

                    message = ManageMessageId.RemoveLoginSuccess;
                }
            }
            return(RedirectToAction(nameof(ManageLogins), new { Message = message }));
        }
コード例 #5
0
        public async Task <IActionResult> RemoveLogin([FromBody] RemoveLoginModel model)
        {
            var user = await _userRepository.GetUserById(HttpContext.User.Identity.Name);

            if (user == null)
            {
                return(_responseService.GenerateResponse(HttpStatusCode.NotFound, "User could not be found."));
            }

            var login = user.Logins.FirstOrDefault(a => a.Provider == model.Provider && a.ExternalId == model.ExternalId);

            if (login != null)
            {
                user.Logins.Remove(login);
                await _userRepository.UpdateUser(user);
            }

            return(_responseService.GenerateResponse(HttpStatusCode.OK, $"{model.Provider} login removed."));
        }
コード例 #6
0
        public async Task <IActionResult> RemoveLogin(RemoveLoginModel model)
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
            }

            var result = await _userManager.RemoveLoginAsync(user, model.LoginProvider, model.ProviderKey);

            if (!result.Succeeded)
            {
                throw new ApplicationException($"Unexpected error occurred removing external login for user with ID '{user.Id}'.");
            }

            await _signInManager.SignInAsync(user, isPersistent : false);

            StatusMessage = "The external login was removed.";
            return(RedirectToAction(nameof(ExternalLogins)));
        }
コード例 #7
0
        public async Task <IActionResult> RemoveLogin(string username, RemoveLoginModel model)
        {
            var user = await GetUserAsync();

            if (!user.HasUserName(username))
            {
                return(NotFound());
            }

            var result = await UserManager.RemoveLoginAsync(user, model.LoginProvider, model.ProviderKey);

            if (!result.Succeeded)
            {
                throw new ApplicationException($"Unexpected error occurred removing external login for user with ID '{user.Id}'.");
            }

            await SignInManager.SignInAsync(user, isPersistent : false);

            StatusMessage = "The external login was removed.";
            return(RedirectToAction(nameof(ExternalLogins)));
        }
コード例 #8
0
 public async Task<IHttpActionResult> RemoveLogin(RemoveLoginModel model)
 {
     return await RunTask(() => AccountManager.RemoveLogin(User, model));
 }
コード例 #9
0
 public async Task <IHttpActionResult> RemoveLogin(RemoveLoginModel model)
 {
     return(Ok());
 }
コード例 #10
0
 public async Task <IHttpActionResult> RemoveLogin(RemoveLoginModel model)
 {
     return(await RunTask(() => AccountManager.RemoveLogin(User, model)));
 }