public async Task <ActionResult> VerifyCode(VerifyCodeViewModel model) { if (!ModelState.IsValid) { return(View(model)); } // 以下代码可以防范双重身份验证代码遭到暴力破解攻击。 // 如果用户输入错误代码的次数达到指定的次数,则会将 // 该用户帐户锁定指定的时间。 // 可以在 IdentityConfig 中配置帐户锁定设置 var result = await SignInManager.TwoFactorSignInAsync(model.Provider, model.Code, isPersistent : model.RememberMe, rememberBrowser : model.RememberBrowser); switch (result) { case SignInStatus.Success: return(RedirectToLocal(model.ReturnUrl)); case SignInStatus.LockedOut: return(View("Lockout")); case SignInStatus.Failure: default: ModelState.AddModelError("", "代码无效。"); return(View(model)); } }
public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } var result = await _signInManager.TwoFactorSignInAsync( provider : VerifyCode.Provider, code : VerifyCode.Code, isPersistent : VerifyCode.RememberMe, rememberClient : VerifyCode.BrowserRemember ); if (result.Succeeded) { return(RedirectToLocal(VerifyCode.ReturnTo)); } if (result.IsLockedOut) { return(RedirectToPage("/Lockout")); } ModelState.AddModelError(nameof(VerifyCode.Code), "کد وارد شده معتبر نمی باشد"); return(Page()); }
public async Task <IActionResult> VerifyCode(VerifyCode model) { if (!ModelState.IsValid) { return(View(model)); } var result = await _signInManager.TwoFactorSignInAsync( provider : model.Provider, code : model.Code, isPersistent : model.RememberMe, rememberClient : model.BrowserRemember ); if (result.Succeeded) { return(RedirectToLocal(model.ReturnTo)); } if (result.IsLockedOut) { return(View("LockOut")); } ModelState.AddModelError(nameof(model.Code), "کد وارد شده معتبر نمی باشد"); return(View(model)); }
public async Task <ActionResult> VerifyCode(VerifyCodeViewModel model) { if (!ModelState.IsValid) { return(View(model)); } // The following code protects for brute force attacks against the two factor codes. // 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. // You can configure the account lockout settings in IdentityConfig var result = await SignInManager.TwoFactorSignInAsync(model.Provider, model.Code, isPersistent : model.RememberMe, rememberBrowser : model.RememberBrowser); switch (result) { case SignInStatus.Success: return(RedirectToLocal(model.ReturnUrl)); case SignInStatus.LockedOut: return(View("Lockout")); case SignInStatus.Failure: default: ModelState.AddModelError("", "Invalid code."); return(View(model)); } }