2023-02-15 364
我有一个关于我的VS项目,基本上只有和ASP.NET Core 5网站启用了本地Auth.我可以注册本地用户,然后登录它们没有问题.但是,当我尝试以编程方式创建一个用户时,使用下面的代码,我知道用户是创建的,因为我可以在SQL中查看它,但是当我尝试登录时,我得到”禁止登录访问”错误.
我不知何故没有正确创建用户?
如何调试这一点以查看未验证的内容?
public static async Task SeedDefaultUserAsync(UserManager<ApplicationUser> userManager)
{
string testUser = "user999";
var user = await userManager.FindByNameAsync(testUser);
if (user == null)
{
user = new ApplicationUser()
{
Email = testUser + "@gmail.com",
UserName = testUser,
EmailConfirmed = true,
LockoutEnabled = false,
};
await userManager.CreateAsync(user, "Abc123@");
Console.WriteLine("user: " + testUser + " available with password Abc123@.");
}
if (user == null)
{
throw new Exception("The password is probably not strong enough!");
}
}
我甚至尝试发送自己密码重置链接,重置密码,我仍然得到登录错误.
据我所知,
,当您在ASP.NET核心标识中登录时,它将称CansignInasync方法检查用户可以登录.
如果用户未通过,它将抛出”登录访问不允许”错误.
更多详细信息,您可以参考以下源代码:
protected virtual async Task<SignInResult> PreSignInCheck(TUser user)
{
if (!await CanSignInAsync(user))
{
return SignInResult.NotAllowed;
}
if (await IsLockedOut(user))
{
return await LockedOut(user);
}
return null;
}
public virtual async Task<bool> CanSignInAsync(TUser user)
{
if (Options.SignIn.RequireConfirmedEmail && !(await UserManager.IsEmailConfirmedAsync(user)))
{
Logger.LogWarning(0, "User cannot sign in without a confirmed email.");
return false;
}
if (Options.SignIn.RequireConfirmedPhoneNumber && !(await UserManager.IsPhoneNumberConfirmedAsync(user)))
{
Logger.LogWarning(1, "User cannot sign in without a confirmed phone number.");
return false;
}
if (Options.SignIn.RequireConfirmedAccount && !(await _confirmation.IsConfirmedAsync(UserManager, user)))
{
Logger.LogWarning(4, "User cannot sign in without a confirmed account.");
return false;
}
return true;
}
所以我建议你可以检查你的startup.cs,以确保你把手机或要求设置为false,如下所示,如果您启用了其他所需信息,则应将其设置为您的应用程序.
除,默认情况下,用户名也是一种电子邮件格式,请修改您的代码以将用户名设置为电子邮件. UserName = testUser + "@gmail.com",
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDatabaseDeveloperPageExceptionFilter();
services.AddDefaultIdentity<IdentityUser>(options =>
{ options.SignIn.RequireConfirmedAccount = false;
options.SignIn.RequireConfirmedEmail = true;
options.SignIn.RequireConfirmedPhoneNumber = false;
})
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddControllersWithViews();
}
以上所述是小编给大家介绍的在ASP.NET Core 5中创建Auth用户的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/33734.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态