当我在MVC中为一个用户分配超过396个角色时,登录失败



我正在Asp.Net MVC 5中开发一个应用程序。当我为一个用户分配超过396个角色时,用户将无法再登录而不会引发错误。

在删除已经分配给用户的一些角色直到分配的角色的数量为396或更少之后,一切都会恢复正常。如有任何帮助,我们将不胜感激。

很可能是cookie空间不足。当用户登录时,有关已分配角色的信息会被放入cookie中。Cookie的处理量是有限的。

cookie的容量限制因浏览器而异,但通常约为4Kb。然而,OWIN版本3能够将身份验证值拆分为多个cookie。然而,HTTP请求的总最大标头大小为16Kb。有关限制,请参阅此线程

所以396个角色就太多了。看起来您的身份验证信息高于16Kb,并且您的Cookie尚未设置。

解决方案:减少角色。你对此无能为力——这是浏览器的限制。

或者,您可以为用户实现一些自定义角色检查。但老实说,这么多角色很臭——你的授权系统设置有些不对劲。

最新更新