我们如何在ASP.NET身份中实现权限?

Sha*_*tin 7 c# asp.net permissions asp.net-web-api asp.net-identity

我们了解如何使用WebApi在ASP.NET标识中实现身份验证和授权.例如,我们可以登录用户,然后检索他的安全令牌和角色.

我们现在想要添加权限.例如,用户steve可能处于admin角色.现在我们要为管理员角色分配读取,编辑和删除权限.我们如何在ASP.NET身份中做到这一点?ASP.NET身份中是否存在现有权限基础结构?

Kev*_*ans 11

我扩展了ASP.NET Identity,以便在描述时允许权限.我这样做是为了将安全模型与应用程序模型分离.将角色放入AuthorizeAttribute的传统方法的问题是您必须在设计应用程序的同时设计安全模型,如果进行任何更改,则必须重新编译和重新部署应用程序.通过我提出的方法,您可以在自定义AuthorizeAttribute中定义资源和操作,其中操作类似于权限.现在你装饰这样的方法:

[SimpleAuthorize(Resource = "UserProfile", Operation = "modify")]
public ActionResult ModifyUserProfile()
{
    ViewBag.Message = "Modify Your Profile";
    return View();
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以将资源/操作分配给数据库中的角色,在部署期间配置安全模型,并且可以在不重新部署的情况下对其进行修改.我在这里使用SimpleMembership写了这个方法.然后将其移植到ASP.NET身份.这些文章链接到完整的源代码和参考应用程序.

  • 你好凯文,我正在尝试在我的 ASP.NET 应用程序中实现权限。您提供的链接指向一个空白页面。我想知道您是如何实现权限的。你能提供正确的吗?链接到您在上述答案中暗示的资源? (2认同)