【发布时间】:2021-06-21 04:16:07
【问题描述】:
我已经尝试了this question 中的解决方案,但没有任何运气。
在我的Startup.cs 我有这个:
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
//services.AddIdentity<ApplicationUser, ApplicationRole>(options => options.SignIn.RequireConfirmedAccount = true)
// .AddRoles<ApplicationRole>()
// .AddEntityFrameworkStores<ApplicationDbContext>();
services.AddIdentity<ApplicationUser, ApplicationRole>()
.AddRoles<ApplicationRole>()
.AddEntityFrameworkStores<ApplicationDbContext>();
services.Configure<IdentityOptions>(options =>
{
options.SignIn.RequireConfirmedAccount = true;
options.Password.RequiredLength = 8;
options.Password.RequireDigit = false;
options.Password.RequireUppercase = false;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequiredUniqueChars = 5;
options.Lockout.MaxFailedAccessAttempts = 3;
options.Lockout.DefaultLockoutTimeSpan = new TimeSpan(0, 15, 0); // 15 minutes
});
我尝试从我的解决方案中删除文件 IdentityHostingStartup.cs,但这并没有任何区别。现在我已将其添加回来(在区域/身份/页面中),但注释掉了我认为造成问题的原因:
//[assembly: HostingStartup(typeof(MyAppName.Areas.Identity.IdentityHostingStartup))]
namespace MyAppName.Areas.Identity
{
public class IdentityHostingStartup : IHostingStartup
{
public void Configure(IWebHostBuilder builder)
{
//builder.ConfigureServices((context, services) => {
// services.AddDbContext<ApplicationDbContext>(options =>
// options.UseSqlServer(
// context.Configuration.GetConnectionString("GroupManagerContextConnection")));
//services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
// .AddEntityFrameworkStores<ApplicationDbContext>();
//});
}
}
}
【问题讨论】:
-
确保您的 ApplicationDbContext 类似于
ApplicationDbContext:IdentityDbContext<ApplicationUser, ApplicationRole, string>。 ApplicationUser 也应该继承 IdentityUser 和 ApplicationRole 继承 IdentityRole。
标签: c# asp.net-core asp.net-core-identity