Asp.net

.NET core 2.0 cookie 身份驗證 - 不重定向

  • September 15, 2017

我正在使用帶有 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。

不幸的是,該標誌被很好地真正地移除了。但是,您可以在您的 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 方面已經很難了。因此,為什麼要強制登錄頁面。

引用自:https://stackoverflow.com/questions/46247163