加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – 使用基于声明的授权

发布时间:2020-12-15 19:33:17 所属栏目:asp.Net 来源:网络整理
导读:新的ASP.NET 4.5代码已将“重新生成”ASP.NET RoleProvider到ClaimProvider。 我想要弄清楚的是,什么是“基于声明”的授权示例(最好是在MVC4)?我的Authorize属性如何与此功能交互? WebSecurity和Roles API没有改变;没有“DoesUserHaveClaim()”签名。类似
新的ASP.NET 4.5代码已将“重新生成”ASP.NET RoleProvider到ClaimProvider。

我想要弄清楚的是,什么是“基于声明”的授权示例(最好是在MVC4)?我的Authorize属性如何与此功能交互? WebSecurity和Roles API没有改变;没有“DoesUserHaveClaim()”签名。类似地,不清楚Authorize属性如何与声明进行交互。

此“声明授权”功能主要是否用于OAuth?如果是,如何将索赔转交给我的申请?一个cookie?或者这个声明提供者功能是否用于更广泛的用途?

简而言之,使用ClaimsPrincipal的故事是什么?

我看到的最近的东西,有点有意义,是this discussion.但我怀疑是日期 – 它应该与什么MVC4互联网项目模板生成。即使如此,它仍然没有建议如何使用Authorize属性与设置。

更新

我从这些来源找到了我的问题的答案:

> The remarks section of ClaimsPrincipal解释说,WebSecurity,Roles和AuthorizeAttribute API实际上根据需要归结为声明检查。
> A claims-based MVC4 example is here(与其他人一起)。
>基本SAML story is shown here。

解决方法

基于声明的安全性有助于将您的安全模型与应用程序域隔离。声明可以是您要附加到用户身份的任何内容,例如电子邮件,电话号码或指示用户是否是超级用户的标志。这为您提供了如何设置授权过程的极大灵活性。过去,在ASP.NET应用程序中,您必须确定要允许的角色,并在编程应用程序时应用它们。然后检查用户是否处于授权角色。这将使您的安全模型与您的应用程序。在基于声明的基础上,您具有更多的灵活性,更典型的是设置一个授权方案,它将资源(例如:订单管理系统中的订单)和操作(例如:读,写,执行)作为输入参数授权过程,有效地从应用程序中分离安全性。参见 ClaimsPrincipalPermissionAttribute这个技术的例子。

OAuth需要基于声明的安全性,但它也适用于其他授权方案。您在应用程序中使用的自定义声明可以从ClaimsPrincipal.Current访问。还有一些技术可以将此信息存储在Cookie中,尽管ASP.NET安全流水线在默认情况下不会这样做。

您引用的讨论是针对Windows身份基础(WIF),现在是在4.5的一部分,并且是为什么基于声明的身份是一流的公民。所有Principal类型都继承ClaimPrincipal。有关基于声明的安全性的良好概述,请查看此免费电子书“A Guide to Claims-Based Identity and Access Control (2nd Edition)”。在这个领域的真正的专家是Dominick Baier和his blog充满了关于这个主题的有用的信息。他还有一个伟大的在线培训课程Pluralsight称为“Identity & Access Control in ASP.NET 4.5”。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读