【问题标题】:Claims-Based Authorization - how to manage Claims基于声明的授权 - 如何管理声明
【发布时间】:2013-11-06 10:24:21
【问题描述】:

最近几天我一直在努力理解基于声明的授权,并且在将理论知识应用于现实世界的 MVC 网站时遇到了一个严重的问题。 http://www.codeproject.com/Articles/639458/Claims-Based-Authentication-and-Authorization 之类的教程描述了安装过程和非常基础的内容,但很少介绍如何管理声明。

假设有一个简单的 MVC 网站,用于保存有趣的驯鹿图片。 它使用 Thinktecture.IdentityModel,但可能所有其他 Identitymodel 都会这样做。 假设身份验证已到位并且正在工作。

 public class ReindeerController : Controller
    {
        //should be accesible to whole world
        public ActionResult AboutReindeers()
        {}
        //should be accessible to users which are supposed to add Reindeers, e.g. an "Admin" (which is a role, I know)
        public ActionResult AddReindeer()
        {}
        //Only for the Site-owner
        public ActionResult DeleteReindeer()
        {}
        //should be accesible to registred users
        public ActionResult Index()
        {}
    }

所以我有一个 UserClaims 表,其中存储了一个用户 ID、作为 URL 的声明类型和声明的值。但这只是声明的技术基础——我想了解是否有一个好的架构来创建声明并定义用户拥有/需要什么声明。

【问题讨论】:

    标签: asp.net-mvc claims-based-identity


    【解决方案1】:

    查看此(旧)帖子 about claims authorization 以获取概览。

    然后你会发现更多细节here,thinktecture 上还有很多其他不错的帖子。

    WIF API 描述应该可以帮助您填补空白。

    【讨论】:

    • 非常感谢,我去看看!
    【解决方案2】:

    我有一个 UserClaims 表,其中存储了一个用户 ID、作为 URL 的声明类型以及声明的值。

    听起来是存储声明的绝佳方式。你的方法是正确的,可能是我会做的。我的建议是不要过度考虑这个问题,你已经有了一个很好的解决方案。 :)

    【讨论】:

      猜你喜欢
      • 2021-04-13
      • 2012-11-07
      • 2017-06-08
      • 1970-01-01
      • 2014-03-15
      • 2011-08-25
      • 2014-05-01
      • 2010-12-20
      相关资源
      最近更新 更多