新的 ASP.NET 4.5 代码已将 ASP.NET RoleProvider “重新设置为” ClaimsProvider。
我想弄清楚的是,“基于声明”的授权示例是什么样的(最好在 MVC4 中)?我的 Authorize 属性如何与此功能交互或不交互?WebSecurity 和 Roles API 没有改变;没有“DoesUserHaveClaim()”签名。同样,也不清楚 Authorize 属性如何与声明交互。
这个“声明授权”功能主要用于 OAuth 吗?如果是这样,如何将索赔转发给我的申请?一块饼干?或者这个声明提供者的功能是为了更广泛的用途?
简而言之,使用 ClaimsPrincipal 的故事是什么?
我所见过的最接近某种有意义的事情就是这个讨论。但我怀疑这已经过时了 - 它应该与 MVC4 互联网项目模板生成的内容进行比较。即便如此,它仍然没有建议如何在设置中使用 Authorize 属性。
更新
我从以下来源找到了我的问题的答案:
- ClaimsPrincipal 的备注部分解释说,WebSecurity、Roles 和 AuthorizeAttribute API 实际上归结为必要时的声明检查。
- 这里有一个基于声明的 MVC4 示例(以及其他示例)。
- 此处显示了基本的SAML 故事。