2017-09-15 46 views
2

我正在使用.NET核心2.0与cookie身份验证。
我的配置是这样的:.NET核心2.0 cookie身份验证 - 不要重定向

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

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

在.NET 1.1的核心,我能够通过设置 AutomaticChallenge = false进行配置。
我如何在.NET Core 2.0中配置它?
我只是想让我的控制器返回HTTP 403.

回答

4

不幸的是,这个标志被完全删除。但是你可以重写“RedirectToLogin”事件像这样在你的ConfigureServices您startup.cs的方法在这里

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