我们了解如何使用WebApi在ASP.NET标识中实现身份验证和授权.
例如,我们可以登录用户,然后检索他的安全令牌和角色.
例如,我们可以登录用户,然后检索他的安全令牌和角色.
我们现在想要添加权限.例如,用户steve可能处于admin角色.现在我们要为管理员角色分配读取,编辑和删除权限.我们如何在ASP.NET身份中做到这一点? ASP.NET身份中是否存在现有权限基础结构?
解决方法
我扩展了ASP.NET Identity,以便在描述时允许权限.我这样做是为了将安全模型与应用程序模型分离.将角色放入AuthorizeAttribute的传统方法的问题是您必须在设计应用程序的同时设计安全模型,如果进行任何更改,则必须重新编译和重新部署应用程序.通过我提出的方法,您可以在自定义AuthorizeAttribute中定义资源和操作,其中操作类似于权限.现在你装饰这样的方法:
[SimpleAuthorize(Resource = "UserProfile",Operation = "modify")] public ActionResult ModifyUserProfile() { ViewBag.Message = "Modify Your Profile"; return View(); }
然后,您可以将资源/操作分配给数据库中的角色,在部署期间配置安全模型,并且可以在不重新部署的情况下对其进行修改. I wrote about this approach using SimpleMembership here.以及后来的ported it to ASP.NET Identity here.这些文章链接到完整的源代码和参考应用程序.