React to identity cancellationToken removal
This commit is contained in:
parent
2c881cf6a6
commit
083f05a7d0
|
|
@ -47,7 +47,7 @@ namespace MusicStore.Controllers
|
||||||
|
|
||||||
// This doesn't count login failures towards account lockout
|
// This doesn't count login failures towards account lockout
|
||||||
// To enable password failures to trigger account lockout, change to shouldLockout: true
|
// To enable password failures to trigger account lockout, change to shouldLockout: true
|
||||||
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false, cancellationToken: Context.RequestAborted);
|
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
|
||||||
if (result.Succeeded)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
return RedirectToLocal(returnUrl);
|
return RedirectToLocal(returnUrl);
|
||||||
|
|
@ -72,7 +72,7 @@ namespace MusicStore.Controllers
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
public async Task<ActionResult> VerifyCode(string provider, bool rememberMe, string returnUrl = null)
|
public async Task<ActionResult> VerifyCode(string provider, bool rememberMe, string returnUrl = null)
|
||||||
{
|
{
|
||||||
var user = await SignInManager.GetTwoFactorAuthenticationUserAsync(cancellationToken: Context.RequestAborted);
|
var user = await SignInManager.GetTwoFactorAuthenticationUserAsync();
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
return View("Error");
|
return View("Error");
|
||||||
|
|
@ -82,7 +82,7 @@ namespace MusicStore.Controllers
|
||||||
#if DEMO
|
#if DEMO
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
ViewBag.Code = await UserManager.GenerateTwoFactorTokenAsync(user, provider, cancellationToken: Context.RequestAborted);
|
ViewBag.Code = await UserManager.GenerateTwoFactorTokenAsync(user, provider);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return View(new VerifyCodeViewModel { Provider = provider, ReturnUrl = returnUrl, RememberMe = rememberMe });
|
return View(new VerifyCodeViewModel { Provider = provider, ReturnUrl = returnUrl, RememberMe = rememberMe });
|
||||||
|
|
@ -104,7 +104,7 @@ namespace MusicStore.Controllers
|
||||||
// If a user enters incorrect codes for a specified amount of time then the user account
|
// If a user enters incorrect codes for a specified amount of time then the user account
|
||||||
// will be locked out for a specified amount of time.
|
// will be locked out for a specified amount of time.
|
||||||
// You can configure the account lockout settings in IdentityConfig
|
// You can configure the account lockout settings in IdentityConfig
|
||||||
var result = await SignInManager.TwoFactorSignInAsync(model.Provider, model.Code, model.RememberMe, model.RememberBrowser, cancellationToken: Context.RequestAborted);
|
var result = await SignInManager.TwoFactorSignInAsync(model.Provider, model.Code, model.RememberMe, model.RememberBrowser);
|
||||||
if (result.Succeeded)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
return RedirectToLocal(model.ReturnUrl);
|
return RedirectToLocal(model.ReturnUrl);
|
||||||
|
|
@ -139,7 +139,7 @@ namespace MusicStore.Controllers
|
||||||
if (ModelState.IsValid)
|
if (ModelState.IsValid)
|
||||||
{
|
{
|
||||||
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
|
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
|
||||||
var result = await UserManager.CreateAsync(user, model.Password, cancellationToken: Context.RequestAborted);
|
var result = await UserManager.CreateAsync(user, model.Password);
|
||||||
if (result.Succeeded)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
//Bug: Remember browser option missing?
|
//Bug: Remember browser option missing?
|
||||||
|
|
@ -148,7 +148,7 @@ namespace MusicStore.Controllers
|
||||||
|
|
||||||
// For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
|
// For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
|
||||||
// Send an email with this link
|
// Send an email with this link
|
||||||
string code = await UserManager.GenerateEmailConfirmationTokenAsync(user, cancellationToken: Context.RequestAborted);
|
string code = await UserManager.GenerateEmailConfirmationTokenAsync(user);
|
||||||
var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Context.Request.Scheme);
|
var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Context.Request.Scheme);
|
||||||
var email = new IdentityMessage
|
var email = new IdentityMessage
|
||||||
{
|
{
|
||||||
|
|
@ -156,7 +156,7 @@ namespace MusicStore.Controllers
|
||||||
Subject = "Confirm your account",
|
Subject = "Confirm your account",
|
||||||
Body = "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>"
|
Body = "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>"
|
||||||
};
|
};
|
||||||
await UserManager.SendMessageAsync("Email", email, cancellationToken: Context.RequestAborted);
|
await UserManager.SendMessageAsync("Email", email);
|
||||||
#if !DEMO
|
#if !DEMO
|
||||||
return RedirectToAction("Index", "Home");
|
return RedirectToAction("Index", "Home");
|
||||||
#else
|
#else
|
||||||
|
|
@ -182,12 +182,12 @@ namespace MusicStore.Controllers
|
||||||
return View("Error");
|
return View("Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
var user = await SignInManager.UserManager.FindByIdAsync(userId, cancellationToken: Context.RequestAborted);
|
var user = await SignInManager.UserManager.FindByIdAsync(userId);
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
return View("Error");
|
return View("Error");
|
||||||
}
|
}
|
||||||
var result = await UserManager.ConfirmEmailAsync(user, code, cancellationToken: Context.RequestAborted);
|
var result = await UserManager.ConfirmEmailAsync(user, code);
|
||||||
return View(result.Succeeded ? "ConfirmEmail" : "Error");
|
return View(result.Succeeded ? "ConfirmEmail" : "Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -208,8 +208,8 @@ namespace MusicStore.Controllers
|
||||||
{
|
{
|
||||||
if (ModelState.IsValid)
|
if (ModelState.IsValid)
|
||||||
{
|
{
|
||||||
var user = await UserManager.FindByNameAsync(model.Email, cancellationToken: Context.RequestAborted);
|
var user = await UserManager.FindByNameAsync(model.Email);
|
||||||
if (user == null || !(await UserManager.IsEmailConfirmedAsync(user, cancellationToken: Context.RequestAborted)))
|
if (user == null || !(await UserManager.IsEmailConfirmedAsync(user)))
|
||||||
{
|
{
|
||||||
// Don't reveal that the user does not exist or is not confirmed
|
// Don't reveal that the user does not exist or is not confirmed
|
||||||
return View("ForgotPasswordConfirmation");
|
return View("ForgotPasswordConfirmation");
|
||||||
|
|
@ -217,7 +217,7 @@ namespace MusicStore.Controllers
|
||||||
|
|
||||||
// For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
|
// For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
|
||||||
// Send an email with this link
|
// Send an email with this link
|
||||||
string code = await UserManager.GeneratePasswordResetTokenAsync(user, cancellationToken: Context.RequestAborted);
|
string code = await UserManager.GeneratePasswordResetTokenAsync(user);
|
||||||
var callbackUrl = Url.Action("ResetPassword", "Account", new { code = code }, protocol: Context.Request.Scheme);
|
var callbackUrl = Url.Action("ResetPassword", "Account", new { code = code }, protocol: Context.Request.Scheme);
|
||||||
var email = new IdentityMessage
|
var email = new IdentityMessage
|
||||||
{
|
{
|
||||||
|
|
@ -225,7 +225,7 @@ namespace MusicStore.Controllers
|
||||||
Subject = "Reset Password",
|
Subject = "Reset Password",
|
||||||
Body = "Please reset your password by clicking here: <a href=\"" + callbackUrl + "\">link</a>"
|
Body = "Please reset your password by clicking here: <a href=\"" + callbackUrl + "\">link</a>"
|
||||||
};
|
};
|
||||||
await UserManager.SendMessageAsync("Email", email, cancellationToken: Context.RequestAborted);
|
await UserManager.SendMessageAsync("Email", email);
|
||||||
#if !DEMO
|
#if !DEMO
|
||||||
return RedirectToAction("ForgotPasswordConfirmation");
|
return RedirectToAction("ForgotPasswordConfirmation");
|
||||||
#else
|
#else
|
||||||
|
|
@ -270,13 +270,13 @@ namespace MusicStore.Controllers
|
||||||
{
|
{
|
||||||
return View(model);
|
return View(model);
|
||||||
}
|
}
|
||||||
var user = await UserManager.FindByNameAsync(model.Email, cancellationToken: Context.RequestAborted);
|
var user = await UserManager.FindByNameAsync(model.Email);
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
// Don't reveal that the user does not exist
|
// Don't reveal that the user does not exist
|
||||||
return RedirectToAction("ResetPasswordConfirmation", "Account");
|
return RedirectToAction("ResetPasswordConfirmation", "Account");
|
||||||
}
|
}
|
||||||
var result = await UserManager.ResetPasswordAsync(user, model.Code, model.Password, cancellationToken: Context.RequestAborted);
|
var result = await UserManager.ResetPasswordAsync(user, model.Code, model.Password);
|
||||||
if (result.Succeeded)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
return RedirectToAction("ResetPasswordConfirmation", "Account");
|
return RedirectToAction("ResetPasswordConfirmation", "Account");
|
||||||
|
|
@ -312,7 +312,7 @@ namespace MusicStore.Controllers
|
||||||
public async Task<ActionResult> SendCode(bool rememberMe, string returnUrl = null)
|
public async Task<ActionResult> SendCode(bool rememberMe, string returnUrl = null)
|
||||||
{
|
{
|
||||||
//TODO : Default rememberMe as well?
|
//TODO : Default rememberMe as well?
|
||||||
var user = await SignInManager.GetTwoFactorAuthenticationUserAsync(cancellationToken: Context.RequestAborted);
|
var user = await SignInManager.GetTwoFactorAuthenticationUserAsync();
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
return View("Error");
|
return View("Error");
|
||||||
|
|
@ -335,7 +335,7 @@ namespace MusicStore.Controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate the token and send it
|
// Generate the token and send it
|
||||||
if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider, cancellationToken: Context.RequestAborted))
|
if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider))
|
||||||
{
|
{
|
||||||
return View("Error");
|
return View("Error");
|
||||||
}
|
}
|
||||||
|
|
@ -347,14 +347,14 @@ namespace MusicStore.Controllers
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
public async Task<ActionResult> ExternalLoginCallback(string returnUrl = null)
|
public async Task<ActionResult> ExternalLoginCallback(string returnUrl = null)
|
||||||
{
|
{
|
||||||
var loginInfo = await SignInManager.GetExternalLoginInfoAsync(cancellationToken: Context.RequestAborted);
|
var loginInfo = await SignInManager.GetExternalLoginInfoAsync();
|
||||||
if (loginInfo == null)
|
if (loginInfo == null)
|
||||||
{
|
{
|
||||||
return RedirectToAction("Login");
|
return RedirectToAction("Login");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sign in the user with this external login provider if the user already has a login
|
// Sign in the user with this external login provider if the user already has a login
|
||||||
var result = await SignInManager.ExternalLoginSignInAsync(loginInfo.LoginProvider, loginInfo.ProviderKey, isPersistent: false, cancellationToken: Context.RequestAborted);
|
var result = await SignInManager.ExternalLoginSignInAsync(loginInfo.LoginProvider, loginInfo.ProviderKey, isPersistent: false);
|
||||||
if (result.Succeeded)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
return RedirectToLocal(returnUrl);
|
return RedirectToLocal(returnUrl);
|
||||||
|
|
@ -393,29 +393,29 @@ namespace MusicStore.Controllers
|
||||||
if (ModelState.IsValid)
|
if (ModelState.IsValid)
|
||||||
{
|
{
|
||||||
// Get the information about the user from the external login provider
|
// Get the information about the user from the external login provider
|
||||||
var info = await SignInManager.GetExternalLoginInfoAsync(cancellationToken: Context.RequestAborted);
|
var info = await SignInManager.GetExternalLoginInfoAsync();
|
||||||
if (info == null)
|
if (info == null)
|
||||||
{
|
{
|
||||||
return View("ExternalLoginFailure");
|
return View("ExternalLoginFailure");
|
||||||
}
|
}
|
||||||
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
|
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
|
||||||
var result = await UserManager.CreateAsync(user, cancellationToken: Context.RequestAborted);
|
var result = await UserManager.CreateAsync(user);
|
||||||
|
|
||||||
#if TESTING
|
#if TESTING
|
||||||
//Just for automated testing adding a claim named 'ManageStore' - Not required for production
|
//Just for automated testing adding a claim named 'ManageStore' - Not required for production
|
||||||
var manageClaim = info.ExternalIdentity.Claims.Where(c => c.Type == "ManageStore").FirstOrDefault();
|
var manageClaim = info.ExternalIdentity.Claims.Where(c => c.Type == "ManageStore").FirstOrDefault();
|
||||||
if (manageClaim != null)
|
if (manageClaim != null)
|
||||||
{
|
{
|
||||||
await UserManager.AddClaimAsync(user, manageClaim, cancellationToken: Context.RequestAborted);
|
await UserManager.AddClaimAsync(user, manageClaim);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (result.Succeeded)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
result = await UserManager.AddLoginAsync(user, info, cancellationToken: Context.RequestAborted);
|
result = await UserManager.AddLoginAsync(user, info);
|
||||||
if (result.Succeeded)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
await SignInManager.SignInAsync(user, isPersistent: false, cancellationToken: Context.RequestAborted);
|
await SignInManager.SignInAsync(user, isPersistent: false);
|
||||||
return RedirectToLocal(returnUrl);
|
return RedirectToLocal(returnUrl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -465,7 +465,7 @@ namespace MusicStore.Controllers
|
||||||
|
|
||||||
private async Task<ApplicationUser> GetCurrentUserAsync()
|
private async Task<ApplicationUser> GetCurrentUserAsync()
|
||||||
{
|
{
|
||||||
return await UserManager.FindByIdAsync(Context.User.Identity.GetUserId(), cancellationToken: Context.RequestAborted);
|
return await UserManager.FindByIdAsync(Context.User.Identity.GetUserId());
|
||||||
}
|
}
|
||||||
|
|
||||||
private ActionResult RedirectToLocal(string returnUrl)
|
private ActionResult RedirectToLocal(string returnUrl)
|
||||||
|
|
|
||||||
|
|
@ -39,11 +39,11 @@ namespace MusicStore.Controllers
|
||||||
var user = await GetCurrentUserAsync();
|
var user = await GetCurrentUserAsync();
|
||||||
var model = new IndexViewModel
|
var model = new IndexViewModel
|
||||||
{
|
{
|
||||||
HasPassword = await UserManager.HasPasswordAsync(user, cancellationToken: Context.RequestAborted),
|
HasPassword = await UserManager.HasPasswordAsync(user),
|
||||||
PhoneNumber = await UserManager.GetPhoneNumberAsync(user, cancellationToken: Context.RequestAborted),
|
PhoneNumber = await UserManager.GetPhoneNumberAsync(user),
|
||||||
TwoFactor = await UserManager.GetTwoFactorEnabledAsync(user, cancellationToken: Context.RequestAborted),
|
TwoFactor = await UserManager.GetTwoFactorEnabledAsync(user),
|
||||||
Logins = await UserManager.GetLoginsAsync(user, cancellationToken: Context.RequestAborted),
|
Logins = await UserManager.GetLoginsAsync(user),
|
||||||
BrowserRemembered = await SignInManager.IsTwoFactorClientRememberedAsync(user, cancellationToken: Context.RequestAborted)
|
BrowserRemembered = await SignInManager.IsTwoFactorClientRememberedAsync(user)
|
||||||
};
|
};
|
||||||
|
|
||||||
return View(model);
|
return View(model);
|
||||||
|
|
@ -59,10 +59,10 @@ namespace MusicStore.Controllers
|
||||||
var user = await GetCurrentUserAsync();
|
var user = await GetCurrentUserAsync();
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
var result = await UserManager.RemoveLoginAsync(user, loginProvider, providerKey, cancellationToken: Context.RequestAborted);
|
var result = await UserManager.RemoveLoginAsync(user, loginProvider, providerKey);
|
||||||
if (result.Succeeded)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
await SignInManager.SignInAsync(user, isPersistent: false, cancellationToken: Context.RequestAborted);
|
await SignInManager.SignInAsync(user, isPersistent: false);
|
||||||
message = ManageMessageId.RemoveLoginSuccess;
|
message = ManageMessageId.RemoveLoginSuccess;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -88,13 +88,13 @@ namespace MusicStore.Controllers
|
||||||
}
|
}
|
||||||
var user = await GetCurrentUserAsync();
|
var user = await GetCurrentUserAsync();
|
||||||
// Generate the token and send it
|
// Generate the token and send it
|
||||||
var code = await UserManager.GenerateChangePhoneNumberTokenAsync(user, model.Number, cancellationToken: Context.RequestAborted);
|
var code = await UserManager.GenerateChangePhoneNumberTokenAsync(user, model.Number);
|
||||||
var message = new IdentityMessage
|
var message = new IdentityMessage
|
||||||
{
|
{
|
||||||
Destination = model.Number,
|
Destination = model.Number,
|
||||||
Body = "Your security code is: " + code
|
Body = "Your security code is: " + code
|
||||||
};
|
};
|
||||||
await UserManager.SendMessageAsync("SMS", message, cancellationToken: Context.RequestAborted);
|
await UserManager.SendMessageAsync("SMS", message);
|
||||||
|
|
||||||
return RedirectToAction("VerifyPhoneNumber", new { PhoneNumber = model.Number });
|
return RedirectToAction("VerifyPhoneNumber", new { PhoneNumber = model.Number });
|
||||||
}
|
}
|
||||||
|
|
@ -108,9 +108,9 @@ namespace MusicStore.Controllers
|
||||||
var user = await GetCurrentUserAsync();
|
var user = await GetCurrentUserAsync();
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
await UserManager.SetTwoFactorEnabledAsync(user, true, cancellationToken: Context.RequestAborted);
|
await UserManager.SetTwoFactorEnabledAsync(user, true);
|
||||||
// TODO: flow remember me somehow?
|
// TODO: flow remember me somehow?
|
||||||
await SignInManager.SignInAsync(user, isPersistent: false, cancellationToken: Context.RequestAborted);
|
await SignInManager.SignInAsync(user, isPersistent: false);
|
||||||
}
|
}
|
||||||
return RedirectToAction("Index", "Manage");
|
return RedirectToAction("Index", "Manage");
|
||||||
}
|
}
|
||||||
|
|
@ -124,8 +124,8 @@ namespace MusicStore.Controllers
|
||||||
var user = await GetCurrentUserAsync();
|
var user = await GetCurrentUserAsync();
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
await UserManager.SetTwoFactorEnabledAsync(user, false, cancellationToken: Context.RequestAborted);
|
await UserManager.SetTwoFactorEnabledAsync(user, false);
|
||||||
await SignInManager.SignInAsync(user, isPersistent: false, cancellationToken: Context.RequestAborted);
|
await SignInManager.SignInAsync(user, isPersistent: false);
|
||||||
}
|
}
|
||||||
return RedirectToAction("Index", "Manage");
|
return RedirectToAction("Index", "Manage");
|
||||||
}
|
}
|
||||||
|
|
@ -137,7 +137,7 @@ namespace MusicStore.Controllers
|
||||||
// This code allows you exercise the flow without actually sending codes
|
// This code allows you exercise the flow without actually sending codes
|
||||||
// For production use please register a SMS provider in IdentityConfig and generate a code here.
|
// For production use please register a SMS provider in IdentityConfig and generate a code here.
|
||||||
#if DEMO
|
#if DEMO
|
||||||
ViewBag.Code = await UserManager.GenerateChangePhoneNumberTokenAsync(await GetCurrentUserAsync(), phoneNumber, cancellationToken: Context.RequestAborted);
|
ViewBag.Code = await UserManager.GenerateChangePhoneNumberTokenAsync(await GetCurrentUserAsync(), phoneNumber);
|
||||||
#endif
|
#endif
|
||||||
return phoneNumber == null ? View("Error") : View(new VerifyPhoneNumberViewModel { PhoneNumber = phoneNumber });
|
return phoneNumber == null ? View("Error") : View(new VerifyPhoneNumberViewModel { PhoneNumber = phoneNumber });
|
||||||
}
|
}
|
||||||
|
|
@ -155,10 +155,10 @@ namespace MusicStore.Controllers
|
||||||
var user = await GetCurrentUserAsync();
|
var user = await GetCurrentUserAsync();
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
var result = await UserManager.ChangePhoneNumberAsync(user, model.PhoneNumber, model.Code, cancellationToken: Context.RequestAborted);
|
var result = await UserManager.ChangePhoneNumberAsync(user, model.PhoneNumber, model.Code);
|
||||||
if (result.Succeeded)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
await SignInManager.SignInAsync(user, isPersistent: false, cancellationToken: Context.RequestAborted);
|
await SignInManager.SignInAsync(user, isPersistent: false);
|
||||||
return RedirectToAction("Index", new { Message = ManageMessageId.AddPhoneSuccess });
|
return RedirectToAction("Index", new { Message = ManageMessageId.AddPhoneSuccess });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -174,10 +174,10 @@ namespace MusicStore.Controllers
|
||||||
var user = await GetCurrentUserAsync();
|
var user = await GetCurrentUserAsync();
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
var result = await UserManager.SetPhoneNumberAsync(user, null, cancellationToken: Context.RequestAborted);
|
var result = await UserManager.SetPhoneNumberAsync(user, null);
|
||||||
if (result.Succeeded)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
await SignInManager.SignInAsync(user, isPersistent: false, cancellationToken: Context.RequestAborted);
|
await SignInManager.SignInAsync(user, isPersistent: false);
|
||||||
return RedirectToAction("Index", new { Message = ManageMessageId.RemovePhoneSuccess });
|
return RedirectToAction("Index", new { Message = ManageMessageId.RemovePhoneSuccess });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -204,10 +204,10 @@ namespace MusicStore.Controllers
|
||||||
var user = await GetCurrentUserAsync();
|
var user = await GetCurrentUserAsync();
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
var result = await UserManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword, cancellationToken: Context.RequestAborted);
|
var result = await UserManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword);
|
||||||
if (result.Succeeded)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
await SignInManager.SignInAsync(user, isPersistent: false, cancellationToken: Context.RequestAborted);
|
await SignInManager.SignInAsync(user, isPersistent: false);
|
||||||
return RedirectToAction("Index", new { Message = ManageMessageId.ChangePasswordSuccess });
|
return RedirectToAction("Index", new { Message = ManageMessageId.ChangePasswordSuccess });
|
||||||
}
|
}
|
||||||
AddErrors(result);
|
AddErrors(result);
|
||||||
|
|
@ -237,10 +237,10 @@ namespace MusicStore.Controllers
|
||||||
var user = await GetCurrentUserAsync();
|
var user = await GetCurrentUserAsync();
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
var result = await UserManager.AddPasswordAsync(user, model.NewPassword, cancellationToken: Context.RequestAborted);
|
var result = await UserManager.AddPasswordAsync(user, model.NewPassword);
|
||||||
if (result.Succeeded)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
await SignInManager.SignInAsync(user, isPersistent: false, cancellationToken: Context.RequestAborted);
|
await SignInManager.SignInAsync(user, isPersistent: false);
|
||||||
return RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess });
|
return RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess });
|
||||||
}
|
}
|
||||||
AddErrors(result);
|
AddErrors(result);
|
||||||
|
|
@ -258,8 +258,8 @@ namespace MusicStore.Controllers
|
||||||
var user = await GetCurrentUserAsync();
|
var user = await GetCurrentUserAsync();
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
await SignInManager.RememberTwoFactorClientAsync(user, cancellationToken: Context.RequestAborted);
|
await SignInManager.RememberTwoFactorClientAsync(user);
|
||||||
await SignInManager.SignInAsync(user, isPersistent: false, cancellationToken: Context.RequestAborted);
|
await SignInManager.SignInAsync(user, isPersistent: false);
|
||||||
}
|
}
|
||||||
return RedirectToAction("Index", "Manage");
|
return RedirectToAction("Index", "Manage");
|
||||||
}
|
}
|
||||||
|
|
@ -288,7 +288,7 @@ namespace MusicStore.Controllers
|
||||||
{
|
{
|
||||||
return View("Error");
|
return View("Error");
|
||||||
}
|
}
|
||||||
var userLogins = await UserManager.GetLoginsAsync(user, cancellationToken: Context.RequestAborted);
|
var userLogins = await UserManager.GetLoginsAsync(user);
|
||||||
var otherLogins = SignInManager.GetExternalAuthenticationTypes().Where(auth => userLogins.All(ul => auth.AuthenticationType != ul.LoginProvider)).ToList();
|
var otherLogins = SignInManager.GetExternalAuthenticationTypes().Where(auth => userLogins.All(ul => auth.AuthenticationType != ul.LoginProvider)).ToList();
|
||||||
ViewBag.ShowRemoveButton = user.PasswordHash != null || userLogins.Count > 1;
|
ViewBag.ShowRemoveButton = user.PasswordHash != null || userLogins.Count > 1;
|
||||||
return View(new ManageLoginsViewModel
|
return View(new ManageLoginsViewModel
|
||||||
|
|
@ -320,7 +320,7 @@ namespace MusicStore.Controllers
|
||||||
return View("Error");
|
return View("Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
var loginInfo = await SignInManager.GetExternalLoginInfoAsync(User.Identity.GetUserId(), cancellationToken: Context.RequestAborted);
|
var loginInfo = await SignInManager.GetExternalLoginInfoAsync(User.Identity.GetUserId());
|
||||||
if (loginInfo == null)
|
if (loginInfo == null)
|
||||||
{
|
{
|
||||||
return RedirectToAction("ManageLogins", new { Message = ManageMessageId.Error });
|
return RedirectToAction("ManageLogins", new { Message = ManageMessageId.Error });
|
||||||
|
|
@ -355,7 +355,7 @@ namespace MusicStore.Controllers
|
||||||
|
|
||||||
private async Task<ApplicationUser> GetCurrentUserAsync()
|
private async Task<ApplicationUser> GetCurrentUserAsync()
|
||||||
{
|
{
|
||||||
return await UserManager.FindByIdAsync(Context.User.Identity.GetUserId(), cancellationToken: Context.RequestAborted);
|
return await UserManager.FindByIdAsync(Context.User.Identity.GetUserId());
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue