示例#1
0
        public async Task <IActionResult> Deregister2FAAuthenticator(string redirectUrl)
        {
            var user = await _userManager.GetUserAsync(HttpContext.User);

            if (user == null)
            {
                throw new Exception("Invalid login info.");
            }

            await _userManager.RemoveAuthenticationTokenAsync(user, _tokenOptions.GetAspNetUserStoreProviderName(), _tokenOptions.GetRecoverCodesName());

            await _userManager.RemoveAuthenticationTokenAsync(user, _tokenOptions.GetAspNetUserStoreProviderName(), _tokenOptions.GetAuthenticatorKeyName());

            await UpdateUser2faStatus(user.Id);

            return(RedirectToAction("Register2FA", new { redirectUrl, userId = user.Id }));
        }
示例#2
0
        public override Task ReplaceCodesAsync(UserModel user, IEnumerable <string> recoveryCodes, CancellationToken cancellationToken)
        {
            List <string> recoveryCodesList = recoveryCodes.ToList();

            // Hash each recovery code
            using (var sha256 = SHA256.Create())
            {
                for (int i = 0; i < recoveryCodesList.Count; i++)
                {
                    var hashedBytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(recoveryCodesList[i]));
                    var hash        = BitConverter.ToString(hashedBytes).Replace("-", "").ToLower();
                    recoveryCodesList[i] = hash;
                }
            }

            var mergedCodes = string.Join(";", recoveryCodesList);

            return(SetTokenAsync(user, tokenOptions.GetAspNetUserStoreProviderName(), tokenOptions.GetRecoverCodesName(), mergedCodes, cancellationToken));
        }
        public void GetAspNetUserStoreProviderName_Executed_ReturnsAspNetUserStoreProviderName()
        {
            // Arrange
            var expectedValue = "[AspNetUserStore]";

            // Act
            var lookedUpValue = tokenOptions.GetAspNetUserStoreProviderName();

            // Assert
            Assert.True((lookedUpValue == expectedValue), $"GetAspNetUserStoreProviderName() should return {expectedValue}.");
        }