【发布时间】:2018-02-03 07:30:54
【问题描述】:
将我的 ASP.NET Core 项目升级到 2.0 后,尝试访问受保护的端点不再返回 401,而是重定向到(不存在的)端点以尝试让用户进行身份验证。
所需的行为是应用程序简单地返回 401。以前我会在配置身份验证时设置AutomaticChallenge = false,但根据this article,该设置不再相关(实际上它不再存在)。
我的身份验证是这样配置的:
Startup.cs.ConfigureServices():
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(o =>
{
o.Cookie.Name = options.CookieName;
o.Cookie.Domain = options.CookieDomain;
o.SlidingExpiration = true;
o.ExpireTimeSpan = options.CookieLifetime;
o.TicketDataFormat = ticketFormat;
o.CookieManager = new CustomChunkingCookieManager();
});
配置():
app.UseAuthentication();
如何禁用自动质询,以便应用程序在用户未通过身份验证时返回 401?
【问题讨论】:
-
您是如何让您的用户在 401 之后登录的?
-
我为(临时)解决这个问题所做的是使用我的自定义
[Auth]属性,我返回的是 400 而不是 401。 -
您能说说这个属性的作用吗?
-
参考:Setting default authentication schemes 讨论了对
AutomaticChallenge和AutomaticAuthenticate的更改
标签: c# authentication asp.net-core asp.net-core-mvc