Asp.net core Asp.net核心力量用户确认电子邮件

Asp.net core Asp.net核心力量用户确认电子邮件,asp.net-core,asp.net-core-webapi,asp.net-core-identity,Asp.net Core,Asp.net Core Webapi,Asp.net Core Identity,就像在标题中一样,我试图强迫用户在登录之前确认电子邮件。我是根据微软教程做事情的,有人写了我必须补充的内容 o、 SignIn.requireconfirmedail=true 我做了什么,但它不会阻止我登录,即使我没有确认我的电子邮件 services.AddIdentity<Company, IdentityRole> (o => { // configure identity options o.Password.

就像在标题中一样,我试图强迫用户在登录之前确认电子邮件。我是根据微软教程做事情的,有人写了我必须补充的内容

o、 SignIn.requireconfirmedail=true

我做了什么,但它不会阻止我登录,即使我没有确认我的电子邮件

 services.AddIdentity<Company, IdentityRole>
      (o =>
      {
        // configure identity options
        o.Password.RequireDigit = false;
        o.Password.RequireLowercase = false;
        o.Password.RequireUppercase = false;
        o.Password.RequireNonAlphanumeric = false;
        o.Password.RequiredLength = 6;
        o.SignIn.RequireConfirmedEmail = true;
        o.Tokens.EmailConfirmationTokenProvider = EmailConfirmationTokenProviderName;
      })
      .AddEntityFrameworkStores<ShopContext>()
      .AddTokenProvider<ConfirmEmailDataProtectorTokenProvider<Company>>(EmailConfirmationTokenProviderName);
services.AddIdentity
(o=>
{
//配置标识选项
o、 Password.RequireDigit=false;
o、 Password.RequireLowercase=false;
o、 Password.RequireUppercase=false;
o、 Password.RequireNonAlphanumeric=false;
o、 Password.RequiredLength=6;
o、 SignIn.requireconfirmedail=true;
o、 Tokens.EmailConfirmationTokenProvider=EmailConfirmationTokenProviderName;
})
.AddEntityFrameworkStores()
.AddTokenProvider(电子邮件确认TokenProviderName);

我正在使用jwt令牌身份验证。在这种情况下,我是否做了比我显示的事情更多的事情?

添加检查帐户是否在
登录
操作开始时确认

var user = await _userManager.FindByEmailAsync(model.Email);
        if (user != null)
        {
            if (!await _userManager.IsEmailConfirmedAsync(user))
            {
                ModelState.AddModelError(string.Empty, 
                              "You must have a confirmed email to log in.");
                return View(model);
            }
        }
还请记住关于通过注释
wait\u-signInManager.SignInAsync(user,isPersistent:false)防止新注册用户自动登录的内容
寄存器中
操作


更多阅读

我已经做了类似于您所展示的事情,那么是否有理由添加这一行o.SignIn.requireconfirmedail=true<代码>SignIn.RequireConfirmedEmail=true正在使用激活链接发送邮件。当您将上面的代码应用于登录时,此链接是必需的,因为如果没有激活,您将无法登录login@J.多谢你的回答,这正是我想要的。我在考虑进一步改进。如果我想区分未确认电子邮件的用户和未经管理员确认的用户,该怎么办?我在考虑扩大重大成果,创造一个新成果。然后,我将隐藏SignIn方法,新方法调用base并检查adminifixed的附加值。这有意义吗?