asp.net - .NET Core 2.0 cookie 身份验证 - 不重定向

标签 asp.net authentication asp.net-core

这个问题在这里已经有了答案:





ASP.NET Core 2.0 disable automatic challenge

(8 个回答)


4年前关闭。




我正在使用 .NET core 2.0 和 cookie 身份验证。
我的配置是这样的:

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

当我访问未经授权的 Controller 时,我被重定向到 /Account/Login
在 .NET Core 1.1 中,我可以通过设置来配置它AutomaticChallenge = false .
如何在 .NET Core 2.0 中配置它?
我只希望我的 Controller 返回 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。因此,为什么强制登录页面。

关于asp.net - .NET Core 2.0 cookie 身份验证 - 不重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46247163/

相关文章:

c# - 无法将类型 'System.Int32' 转换为类型 'System.Object'。 LINQ to Entities 仅支持转换实体数据模型基元类型

c# - ASP.NET C# 使用列表导航如何在事件导航页面上设置 id ="current"?

sql-server - Docker 上的 Asp.Net Core + SQL Server - sleep 启动数据库

javascript - 如何修复 “Failed to load resource: the server responded with a status of 400 ()” API获取错误

asp.net-core - .Net Core 中的 Big-Endian 处理

asp.net - Stream.WriteAsync 抛出远程主机关闭连接异常

c# - EF 6 的哪种方法更适合用于从数据库异步获取数据?

java - 远程验证颠覆

asp.net - 使用 Asp.Net Identity 2.0 管理 2 个级别的身份验证

javascript - Angular 2显示/隐藏路由器导出并重定向到html页面