Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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));
        }