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

时间:2017-09-15 20:37:51

标签: 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";
  });

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

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

1 个答案:

答案 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。因此为什么强制登录页面。