我正在使用带有cookie身份验证的.NET核心2.0 我的配置如下所示:
services
.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.ExpireTimeSpan = TimeSpan.FromDays(1);
options.SlidingExpiration = true;
options.Cookie.Name = "authtoken";
});
当我访问未经授权的控制器时,我被重定向到/Account/Login
在.NET Core 1.1中,我可以通过设置来配置它
AutomaticChallenge = false
。
如何在.NET Core 2.0中配置它?
我只想让我的控制器返回HTTP 403。
答案 0 :(得分:10)
不幸的是,这个旗帜已被彻底删除。但是你可以覆盖" RedirectToLogin"在您的startup.cs的ConfigureServices方法中就是这样的事件
services.AddAuthentication("CookieAuthenticationScheme")
.AddCookie(options => {
options.Events.OnRedirectToLogin = (context) =>
{
context.Response.StatusCode = 401;
return Task.CompletedTask;
};
});
如果您遇到升级问题,请在此处添加更多花絮:https://dotnetcoretutorials.com/2017/09/16/cookie-authentication-asp-net-core-2-0/
我是否正确地认为这是因为它是您正在进行的ajax调用(或者通常是Web API?)。看起来MS已经很难用JWT用于Web API,而Cookie只用于MVC。因此为什么强制登录页面。