public void should_decode_encoded_url_query_string() { var emailToken = new UserEmailToken { UserId = 35, Token = StringUtility.Random(32) }; var encoded = emailToken.EncodeAsQueryString(); var extracted = UserEmailToken.ExtractFromQueryString(encoded); Assert.Equal(35, extracted.UserId); Assert.Equal(emailToken.Token, extracted.Token); }
public async Task <ViewResult> ConfirmEmail(string token) { var tokenInEmail = UserEmailToken.ExtractFromQueryString(token); if (tokenInEmail == null) { _logger.LogWarning("确认邮件地址失败:{@EmailConfirmation}", new { Token = token, Result = "无法识别提供的 token" }); return(View(false)); } var result = await _userService.ConfirmEmailAsync(tokenInEmail); _logger.LogIdentityResult("确认邮件地址", result, tokenInEmail.UserId); return(View(result.Succeeded)); }
public IActionResult ResetPassword(ResetPasswordModel model) { ModelState.Clear(); bool ret; var userEmailToken = UserEmailToken.ExtractFromQueryString(model.Token); if (userEmailToken == null) { var errorMessage = "无法识别的凭证"; ModelState.AddModelError(nameof(model.Token), errorMessage); _logger.LogWarning("重置密码失败:{@ResetPasswordAttempt}", new { model.Token, model.UserId, Result = errorMessage }); return(View("ResetPassword", model)); } model.Token = userEmailToken.Token; model.UserId = userEmailToken.UserId; return(View(model)); }
public IActionResult ResetPassword(ResetPasswordModel model) { if (_idpOptions.IsEnabled) { _logger.LogWarning("重置密码失败:{@ResetPasswordAttempt}", new { model.Token, Result = "启用外部身份服务时,禁止使用本地重置密码功能" }); return(BadRequest()); } ModelState.Clear(); var userEmailToken = UserEmailToken.ExtractFromQueryString(model.Token); if (userEmailToken == null) { var errorMessage = "无法识别的凭证"; ModelState.AddModelError(nameof(model.Token), errorMessage); _logger.LogWarning("重置密码失败:{@ResetPasswordAttempt}", new { model.Token, model.UserId, Result = errorMessage }); return(View("ResetPassword", model)); } model.Token = userEmailToken.Token; model.UserId = userEmailToken.UserId; return(View(model)); }