public async Task <ActionResult> Disassociate(string loginProvider, string providerKey)
        {
            ManageMessageId?message = null;
            string          userId  = User.Identity.GetUserId();

            if (await IdentityStore.RemoveLogin(User.Identity.GetUserId(), loginProvider, providerKey))
            {
                message = ManageMessageId.RemoveLoginSuccess;
            }

            return(RedirectToAction("Manage", new { Message = message }));
        }
예제 #2
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());
        }