禁止时使用 Cookie 身份验证递归的 ASP.NET API

问题描述 投票:0回答:1

我正在尝试实现一个带有 cookie 身份验证的简单 API。我希望当用户未经授权时有 403 和 401,而当用户未经身份验证时有 401。

当我尝试访问我没有足够权限的受保护端点时,我会陷入递归。

所以基本上,如果我返回 http 403,我就会进入递归。

这是一个非常简单的重现仓库:

流程是登录 -> 尝试访问

GetAuthorizedDataAdmins
(需要具有“管理员”角色)我们只有“管理员”。

将刹车点放在禁止的端点上,你会看到递归。

我做错了什么还是一个错误?

它是如此容易重现,我不敢相信以前没有修复过。

回购重现

asp.net authentication cookies authorization
1个回答
0
投票

您需要确保AccessDeniedPath路径确实存在。

.AddCookie(o =>
            {
                o.AccessDeniedPath = "/authentication/forbidden";
                o.LoginPath = "/authentication/unauthorized";
            });

现在公共类 AuthorizatuinController : ControllerBase 有拼写错误。

此外,此页面通常应该是“访问被拒绝”HTML 页面。还经常用 [AllowAnonymous] 装饰,以确保您不需要经过身份验证即可查看它。

© www.soinside.com 2019 - 2024. All rights reserved.