我们已经在我们的MVC应用程序中使用openID-Connect实现了Azure AD身份验证,并使用托管角色声明启用了应用程序中的角色管理。
现在,由于索赔数量很高,我们已经遇到了新的麻烦来管理应用程序中的索赔。
SQL DB:1)主索赔表2)角色表3)riled-要求绘制映射表4)USERCLAIMS表 - 这是维护用户ID和Roalid映射的地方
C#:
var identity = new ClaimsIdentity(new[] {
new Claim("UserMgt:Maintenance", "True"),
new Claim("UserMgt:Add", "True"),
new Claim("UserMgt:Add", "True")
},
"ApplicationCookie");
。。。
我们不确定这是否会减慢性能。我们在用户登录后立即托管了Azure中的应用程序,并考虑将索赔存储在重新录制中,然后通过阅读每个页面中的相应索赔。
让我们知道您是否有更好的建议。
谢谢
登录要求存储在cookie中。因此,cookie的阅读索赔很快就不需要访问您的数据库。
但是,cookie尺寸可能是一个问题。如果您将太多数据放到cookie中,请求将变得过多。单个cookie的最高可达4KB,总总数高达16kb(浏览器依赖)。因此,如果您达到了这一限制,那么值得重新考虑您对索赔的所作所为。(想象一下一个Ajax请求,发布20个字符以获取201个请求,但在网络上拖了约16kb的标题)。
显然在cookie中加密声明,但数据增加比率约为1.1。IE。对于索赔中的1KB数据,您将在电线上获得大约1.1kb的实际cookie尺寸(这是我探索同一问题时的cookie尺寸的经验)
如果您没有达到这些限制,我会说不要太担心它。