存储在 Cookie 中的声明超过最大请求标头长度

Joe*_*uso 5 claims-based-identity asp.net-core asp.net-core-2.0

我有一个 ASP.NET Core 2.0 网站,使用 vanilla 实现,使用 Identity 和 cookie(不使用 OpenID Connect)进行身份验证/授权。我有一组 20 个角色,每个角色都可能有数百个用于访问站点页面/功能的声明(使用 Authorize 装饰控制器方法)。我希望能够控制对这些页面/功能的访问,而无需在每次需要更改时重新编译站点;相反,我允许管理员直接通过站点添加/删除角色声明。出于某种原因,我根据投射到用户身份的声明数量达到了上限。

我收到一个错误

HTTP Error 400. The size of the request headers is too long
Run Code Online (Sandbox Code Playgroud)

知道为什么我会收到这条消息吗?存储/访问这些声明以授权使用的最佳实践是什么?

Vin*_*nce 2

在 Windows 服务器上遇到同样的问题。我不得不求助于注册表设置。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters

最大字段长度 (DWORD) 十进制值 65534

最大请求字节 (DWORD) 十进制值 16777216

https://support.microsoft.com/en-ca/help/820129/http-sys-registry-settings-for-windows