.NET核心2.0 cookie身份验证 - 不重定向

stk*_*hng 5 asp.net authentication asp.net-core

我正在使用带有cookie身份验证的.NET核心2.0.
我的配置如下所示:

services
  .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
  .AddCookie(options =>
  {
      options.ExpireTimeSpan = TimeSpan.FromDays(1);
      options.SlidingExpiration = true;
      options.Cookie.Name = "authtoken";
  });
Run Code Online (Sandbox Code Playgroud)

当我访问未经授权的控制器时,我被重定向到 /Account/Login

在.NET Core 1.1中,我可以通过设置来配置它 AutomaticChallenge = false.
如何在.NET Core 2.0中配置它?
我只是希望我的控制器返回HTTP 403.

Min*_*ata 12

不幸的是,这个旗帜已被完全删除.但是,您可以在startup.cs的ConfigureServices方法中覆盖"RedirectToLogin"事件

services.AddAuthentication("CookieAuthenticationScheme")
    .AddCookie(options => {
        options.Events.OnRedirectToLogin = (context) =>
        {
            context.Response.StatusCode = 401;
            return Task.CompletedTask;
        };
    });
Run Code Online (Sandbox Code Playgroud)

如果您遇到升级问题,在此处添加更多花絮:https://dotnetcoretutorials.com/2017/09/16/cookie-authentication-asp-net-core-2-0/

我是否正确地认为这是因为它是您正在进行的ajax调用(或者通常是Web API?).看起来MS已经很难用JWT用于Web API,而Cookie只用于MVC.因此为什么强制登录页面.