具有有效凭据的用户只能在 AspNetUsers 上的字段"EmailConfirmed"为真时登录 (NETCORE 3.1)



在这里的这个链接之后,在我的服务器端Blazor NetCore 3.1应用程序上,我在Startup.cs中包含了下面的片段,但不管怎样,它只接受用户的登录,在AspNetUsers表中;电子邮件确认";只有当UserName等于Email:时,字段才会设置为true AND

services.Configure<IdentityOptions>(options =>
{
// Default SignIn settings.
options.SignIn.RequireConfirmedEmail = false;        // Requires a confirmed email to sign in.
options.SignIn.RequireConfirmedPhoneNumber = false;  // Requires a confirmed phone number to sign in.
// Password settings.
options.Password.RequireDigit = true;
options.Password.RequireLowercase = true;
options.Password.RequireNonAlphanumeric = true;
options.Password.RequireUppercase = true;
options.Password.RequiredLength = 6;
options.Password.RequiredUniqueChars = 1;
// Lockout settings.
options.Lockout.DefaultLockoutTimeSpan = System.TimeSpan.FromMinutes(5);
options.Lockout.MaxFailedAccessAttempts = 5;
options.Lockout.AllowedForNewUsers = true;
// User settings.
options.User.AllowedUserNameCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
options.User.RequireUniqueEmail = true;

不管怎样,它只接受用户的登录,其中。。。

当你查看标准模板代码时,你也有这样的语句:

services.AddDefaultIdentity<IdentityUser>(options =>
options.SignIn.RequireConfirmedAccount = true)
. ...;

此处将true替换为false(或完全删除options => ...部分(。

AND仅当用户名等于电子邮件时

对于模板代码,这是很难避免的。在"注册"页面中,"电子邮件"值将复制到"用户名"字段中。这是一个实用的措施,您需要确保用户名的唯一性。

当你想改变这一点时(我不建议这样做(,你必须搭建注册和登录页面,也许还有更多,并更改代码和验证。

相关内容

  • 没有找到相关文章

最新更新