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

时间:2018-03-08 21:43:49

标签: asp.net-core asp.net-core-2.0 claims-based-identity

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

我收到错误

HTTP Error 400. The size of the request headers is too long

知道为什么我会收到这条消息吗?存储/访问这些声明与授权一起使用的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

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

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters

MaxFieldLength(DWORD)十进制值65534

MaxRequestByes(DWORD)十进制值16777216

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