asp.net-mvc-4 – 使用基于声明的授权
|
新的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实际上根据需要归结为声明检查。 解决方法基于声明的安全性有助于将您的安全模型与应用程序域隔离。声明可以是您要附加到用户身份的任何内容,例如电子邮件,电话号码或指示用户是否是超级用户的标志。这为您提供了如何设置授权过程的极大灵活性。过去,在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”。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- vbscript – 经典ASP 3.0从Recordset创建数组
- asp.net-mvc – 为ASP.NET MVC Action Links添加rel和title
- 使用ASP.NET MVC3中的jQuery,可点击日期的事件日历
- asp.net-mvc – 可在LAN中远程访问的IIS页面,但不能在服务器
- asp.net – 如何防止重复的回发混淆我的业务层
- 如何使用ASP.NET标识使声明无效?
- asp.net-mvc – 在IISExpress上通过计算机名访问ASP.net we
- 实体框架 – 具有实体框架的MVC MiniProfiler 5模型第一个错
- asp.net+js实现批量编码与解码的方法
- asp.net-core – MVC 6 Web Api:解析201上的位置标题(已创
- asp.net-mvc – 如何将MVC 5 IdentityModels.cs移
- asp.net-mvc – ASP.net MVC数据注释DateTime默认
- asp.net – 如何从SQL Server 2008本身获取客户端
- asp.net-mvc – 当我用fiddler检查时,VS2013 RTM
- asp.net-mvc – 如何与NopCommerce MVC合作
- asp.net-mvc – 直接下载链接到ASP.NET MVC 5 fo
- asp.net – MapRoute和MapPageRoute有什么区别?
- ASP.NET MVC jquery自动填充值和文本字段
- ASP.NET标签控件 – 不编码HTML
- asp.net – “localhost”上运行网站是非常慢
