asp.net-mvc – 在ASP.NET身份中角色与声明的最佳实践
我对ASP.NETIdentity中的声明的使用是全新的,并希望了解使用角色和/或声明的最佳实践。
毕竟这个阅读,我还有一些问题,如… 问:我们不再使用角色吗? 我最初的想法是,我们“应该”一起使用它们。我看到声明作为他们支持的角色的子类别。 例如: 问:他们是否打算互相排斥? 示例:使用角色&一起索赔 [Authorize(Roles="Accounting")] [ClaimAuthorize(Permission="CanUpdateLedger")] public ActionResult CreateAsset(Asset entity) { // Do stuff here return View(); } 示例:完全限定您的声明 [ClaimAuthorize(Permission="Accounting.Ledger.CanUpdate")] public ActionResult CreateAsset(Asset entity) { // Do stuff here return View(); } 解决方法
角色是一个符号类别,用于一起收集共享相同级别的安全权限的用户。基于角色的授权要求首先识别用户,然后确定用户被分配到的角色,最后将这些角色与被授权访问资源的角色进行比较。
相反,索赔是用户识别自己的权利。换句话说,“我允许这样做,因为我有这个索赔。一般来说,基于声明的授权包含基于角色的授权。确切地说,角色成员资格是基于身份确定的,身份只是权利价值的一种权利。角色本质上是一种非常具体的声明,即“因为我的用户名是这个,我是这个角色的成员,因为我是这个角色的成员,我可以访问这个资源。 您可以一起使用,或在一些情况下使用一种类型,而在其他情况下使用另一种类型。它主要取决于与其他系统的互操作和您的管理策略。例如,管理员管理分配给角色的用户列表可能比管理分配了特定声明的用户更容易。在RESTful方案中,声明可能非常有用,您可以向客户端分配声明,然后客户端可以提交声明,以授权,而不是传递每个请求的用户名和密码。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何让routelink返回正确的URL?
- asp.net – MVC 6 WebAPI返回序列化的HttpResponseMessage而
- asp.net-mvc-3 – 在Post上,下拉列表SelectList.SelectedVa
- asp.net-mvc – 我如何moq aingleingleResult?我是不是该?
- asp.net-mvc-3 – 使用Quartz.Net的MVC 3
- asp.net – 命名空间’x’已包含’y’的定义
- asp.net – IIS – 无法通过ip地址而不是本地主机访问页面
- asp.net – 如何基于客户端硬件或其他解决方案实现网站安全
- ASP.NET MVC 微信公共平台开发之 微信接入
- 如何使用ASP.NET和iframe对跨域的用户进行身份验证?
- asp.net – 我可以重新发布或携带POST数据(如果是
- asp.net-mvc – 如何创建ASP.NET MVC区域作为插件
- asp.net – 为什么网站项目中缺少global.asax
- 为什么只读文本框不会在ASP.NET中返回任何数据?
- asp.net-mvc-3 – 如何模拟httpcontext使单元测试
- asp.net – 如何获得Google Prettify更像Visual
- asp.net-mvc – 使用RowAction更改Kendo MVC网格
- EF Core 数据变更自动审计设计
- 在没有viewstate的情况下运行ASP.NET
- asp.net-mvc – Asp.Net MVC路由 – 如何匹配整个