【发布时间】:2020-04-09 11:09:21
【问题描述】:
我已经用 Angular 制作了 asp net core web 应用程序。它使用基于 cookie 的身份验证,使用标准的网络核心身份验证机制。一切正常,直到 IIS 重新启动(回收)。应用程序重新启动后,所有用户都将未经身份验证,需要重新登录。
可能有人知道应该怎么做才能使存储在 cookie 中的信息在几天内真实有效,而不是依赖于应用程序重新启动。
这是一段代码
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<MyAppContext>(options => options.UseMySql(connectionString));
services.AddIdentity<ApplicationUser, ApplicationRole>(options =>
{
options.User.RequireUniqueEmail = true;
options.SignIn.RequireConfirmedEmail = true;
})
.AddEntityFrameworkStores<MyAppContext>()
.AddDefaultTokenProviders();
services.AddAuthorization();
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.SlidingExpiration = true;
options.ExpireTimeSpan = System.TimeSpan.FromDays(7);
options.LoginPath = $"/Identity/Login";
options.LogoutPath = $"/Identity/Logout";
options.Cookie.IsEssential = true;
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
}
【问题讨论】:
-
不记得确切的 .net 核心,但您需要将加密密钥保存在应用程序配置文件中。
-
我想了想,.Net core 不使用 IIS 的配置文件。
-
是的,但你可以在 appSetting.json 中使用它
标签: c# asp.net-mvc authentication asp.net-core