예제 #1
0
        public async Task <IActionResult> Index(ManageMessageId?message = null)
        {
            ViewData["StatusMessage"] =
                message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed."
                : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
                : message == ManageMessageId.SetTwoFactorSuccess ? "Your two-factor authentication provider has been set."
                : message == ManageMessageId.Error ? "An error has occurred."
                : message == ManageMessageId.AddPhoneSuccess ? "Your phone number was added."
                : message == ManageMessageId.RemovePhoneSuccess ? "Your phone number was removed."
                : "";

            var twoFaDetails = await _twoFactorService.GetAuthenticatorDetailsAsync(HttpContext.User, HttpContext.Request.Host.Value);

            var user = await GetCurrentUserAsync();

            var model = new IndexViewModel
            {
                HasPassword       = await _userManager.HasPasswordAsync(user),
                PhoneNumber       = await _userManager.GetPhoneNumberAsync(user),
                TwoFactor         = await _userManager.GetTwoFactorEnabledAsync(user),
                Logins            = await _userManager.GetLoginsAsync(user),
                BrowserRemembered = await _signInManager.IsTwoFactorClientRememberedAsync(user),
                AuthenticatorKey  = twoFaDetails.SharedKey, // await _userManager.GetAuthenticatorKeyAsync(user)
                AuthenticatorUri  = twoFaDetails.AuthenticatorUri,
            };

            return(View(model));
        }
 public Task <TwoFactorAuthDetails> SetupAuthenticator()
 {
     return(_twoFactorService.GetAuthenticatorDetailsAsync(User, Request.Host.Value));
 }