【发布时间】:2020-05-28 10:10:02
【问题描述】:
我试图删除 HTTPS 以测试一些缓存功能,但我的身份验证停止工作。我读到,如果没有 HTTP,使用 Identity 身份验证将停止工作,即使具有身份验证方案的自定义身份验证 cookie 也将无法工作。
在我评论这 2 行之后,我的应用程序将不再工作。
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
app.UseHttpsRedirection();
HTTPS 的使用不是强制性的,该应用程序是在我们的 Intranet 上使用的,我使用 Identity 只是为了管理用户。我现在有什么选择?
即使有这一切,当我尝试登录时,它会将我重定向回登录页面,并且使用自定义身份验证 cookie 而不是身份。
services.AddAuthentication().AddCookie(AuthenticationSchemes.Production, options =>
{
options.ExpireTimeSpan = TimeSpan.FromHours(8);
options.LoginPath = new PathString("/Login");
options.LogoutPath = new PathString("/Logout");
options.Cookie.HttpOnly = true;
options.AccessDeniedPath = new PathString("/AccessDenied");
options.SlidingExpiration = true;
options.Cookie.Name = "NoPaper.Production";
options.ExpireTimeSpan = TimeSpan.FromHours(8);
});
更新
似乎唯一可行的解决方案是在没有 https 的情况下创建一个新项目,然后从其他项目复制所有内容并安装 nuget 包,它就可以工作了。
【问题讨论】:
标签: asp.net-core