|
@@ -0,0 +1,53 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using System.Text;
|
|
|
+using System.Threading.Tasks;
|
|
|
+using Microsoft.AspNetCore.Authorization;
|
|
|
+using Microsoft.AspNetCore.Identity;
|
|
|
+using Microsoft.AspNetCore.Mvc;
|
|
|
+using Microsoft.AspNetCore.Mvc.RazorPages;
|
|
|
+using Microsoft.AspNetCore.WebUtilities;
|
|
|
+using Console = HyperCube.Utils.AdvConsole;
|
|
|
+
|
|
|
+namespace HyperCube.Areas.Identity.Pages.Account
|
|
|
+{
|
|
|
+ [AllowAnonymous]
|
|
|
+ public class ConfirmEmailModel : PageModel
|
|
|
+ {
|
|
|
+ private readonly UserManager<IdentityUser> _userManager;
|
|
|
+
|
|
|
+ public ConfirmEmailModel(UserManager<IdentityUser> userManager)
|
|
|
+ {
|
|
|
+ _userManager = userManager;
|
|
|
+ }
|
|
|
+
|
|
|
+ [TempData]
|
|
|
+ public string StatusMessage { get; set; }
|
|
|
+
|
|
|
+ public async Task<IActionResult> OnGetAsync(string userId, string code)
|
|
|
+ {
|
|
|
+ if (userId == null || code == null)
|
|
|
+ {
|
|
|
+ return RedirectToPage("/Index");
|
|
|
+ }
|
|
|
+
|
|
|
+ var user = await _userManager.FindByIdAsync(userId);
|
|
|
+ if (user == null)
|
|
|
+ {
|
|
|
+ return NotFound($"Unable to load user with ID '{userId}'.");
|
|
|
+ }
|
|
|
+
|
|
|
+ code = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(code));
|
|
|
+ var result = await _userManager.ConfirmEmailAsync(user, code);
|
|
|
+ StatusMessage = result.Succeeded ? "Thank you for confirming your email." : "Error confirming your email.";
|
|
|
+
|
|
|
+ Console.WriteLine($"Adding new user [{user.UserName}], id: [{userId}] to list!");
|
|
|
+ ///adding new confirmed user
|
|
|
+ Models.AccountModel newAcc = new();
|
|
|
+ Models.AccountModel.Loaded.Add(userId, newAcc);
|
|
|
+
|
|
|
+ return Page();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|