用户在 mvc asp 身份中创建帐户时如何禁用电子邮件确认

how to disable email confirmation when user creates an account in mvc asp identity

当用户在 MVC asp.net identity 2.0

中创建帐户时,我需要禁用电子邮件确认

如果您使用的是 ASP.Net MVC,只需在注册时确认即可。如果您正在使用 ASP.Net 核心,请考虑汤姆的回答。

public async Task<ActionResult> Register(RegisterViewModel model)
{
    if (ModelState.IsValid)
    {
        var user = new ApplicationUser 
        { 
            UserName = model.Email, 
            Email = model.Email, 
            EmailConfirmed = true,
        };
        var result = await UserManager.CreateAsync(user, model.Password);
        if (result.Succeeded)
        {
            await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
                
            return RedirectToAction("Index", "Home");
        }
        AddErrors(result);
    }
    return View(model);
 }

在启动时配置aspnet身份时使用如下

在 ConfigureServices() 中

services.AddIdentity<ApplicationUser, IdentityRole>(config =>
{
   config.SignIn.RequireConfirmedEmail = false;
})

在 sign-in 期间验证凭据时,Aspnet 身份将不会检查 EmailConfirmed 标志。

您可以使用此方法代替其他情况,因为将来您可能希望通过发送 link

来确认用户的电子邮件
   services.AddIdentity<ApplicationUser, IdentityRole>(options => 
        {
            options.SignIn.RequireConfirmedAccount = false;
            options.SignIn.RequireConfirmedEmail = false;
            options.SignIn.RequireConfirmedPhoneNumber = false;
        })