- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为我们的 MVC 应用程序开发基于声明的授权原型(prototype)。我们使用 Asp.Net Identity 进行身份验证。
我们希望对每个 Controller 操作都有一个声明,然后放弃/取消用户的声明,这样我们就可以很好地控制谁可以去哪里。
我们的应用程序已经有 800 多个 Action 并且还在不断增长。我制作了一个小测试应用程序,看看如何处理这么多的 claim 。并遇到问题:cookies are limited to 4092 bytes .
并且拥有大量声明会增加身份验证 cookie。大约 600 个带有短名称/值的声明(每个 5 个字符)给我的 cookie 大小超过 4K,而拥有这个数量的声明的用户无法登录 - 无法在浏览器中设置 cookie。
并且 600 个 claim 不是我们的应用程序的限制。我们可能需要更多。
有没有办法将 auth-cookie 分成几个较小的 cookie?
p.s.如果你好奇,这里是我的code for claims "profiler"连同 rest of the project .
pps我知道大型 cookie 对性能的影响。现在不用担心。
更新 目前我的回答没有开箱即用的解决方案。但看起来我不是唯一一个遇到这个问题的人。 Microsoft.Owin
正在处理 auth-cookie。 Owin.Cookies 的当前源代码有 ChunkingCookieManager在 CookieAuthenticationMiddleware 中默认分配.
坏消息是这段代码非常新鲜(2014 年 7 月 10 日 checkin ,只有 20 天)。它可通过 nuget Microsoft.Owin.Security.Cookies 的预发布获得.不确定我是否想在生产站点中使用 RC2。
还有什么办法吗?
最佳答案
您错误地使用了声明。声明代表用户的身份,而不是允许他们执行的操作。您遇到了问题,因为您将 claim 视为用户权限的房屋。您确实应该找到一种方法在您的应用程序中将两者分开。
在 MVC 方式中,这将创建一个自定义授权属性,从声明 cookie 中获取用户的身份,并验证用户的身份是否可以执行某些操作。
请参阅下面的相关问题。
Restricting access to records. Is claim-based permissions a good idea
Claims authorization for specific resources
关于asp.net-mvc - 如何将 Asp.Net Identity 中的大 cookie 分成较小的 cookie 以允许许多声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25025979/
我是一名优秀的程序员,十分优秀!