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”。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 使用HTML.EditorFor Vs使用HTML.CheckBox
- asp.net-mvc-5 – Web API 2 OWIN承载令牌的目的cookie?
- asp.net – app_offline.htm,停止IIS站点和停止应用程序池如
- 你能从ASP.NET 1.1 Web应用程序调用.NET 2.0 COM对象吗?
- ASP.NET有一个复选框列表,在4×5网格中有我很好的复选框
- Asp.net全局输出缓存
- ASP.net c#替换字符串不起作用
- 如何将ASP.NET MVC5身份认证添加到现有数据库
- .net – 如何检测是否从Server.Execute调用了aspx页面?
- asp.net-core – 如何在ASP.NET Core中启动Quartz?
- asp.net-mvc – 我可以在Razor视图中访问C#枚举吗
- ASP.NET(AJAX+JSON)实现对象调用
- asp.net-mvc – 从子页面选择MVC中母版页上的右侧
- 我创造了有史以来最糟糕的标签汤(ASP.NET MVC 2)
- 包含模型列表的模型(MVC-3,Razor)
- asp.net-web-api – 在asp.net webapi odata $me
- asp.net – 如何基于UICulture设置来路由URL?
- ASP.NET Web窗体DropDownList具有SelectedValue,
- 获取当前的ASP.NET机器密钥
- asp.net – EF在现实生活中,我想相信(有没有人有