【问题标题】:.NET core 2.0 cookie authentication - do not redirect [duplicate].NET core 2.0 cookie 身份验证 - 不重定向 [重复]
【发布时间】:2017-09-16 07:52:02
【问题描述】:

我正在使用带有 cookie 身份验证的 .NET core 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。

【问题讨论】:

    标签: asp.net authentication asp.net-core


    【解决方案1】:

    不幸的是,该标志被完全移除。但是,您可以像这样在您的 startup.cs 的 ConfigureServices 方法中覆盖“RedirectToLogin”事件

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

    【讨论】:

      猜你喜欢
      • 2018-05-13
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-09
      • 2013-02-14
      • 1970-01-01
      • 2018-11-22
      相关资源
      最近更新 更多