C# ASP.NET身份动态角色授权
由于我是ASP.NET Identity的新手,我正在观看MVA上的一个视频,Jeremy Foster在演示时问了一个问题,即如何使以下内容变得动态:C# ASP.NET身份动态角色授权,c#,asp.net,asp.net-mvc,asp.net-identity,asp.net-identity-2,C#,Asp.net,Asp.net Mvc,Asp.net Identity,Asp.net Identity 2,由于我是ASP.NET Identity的新手,我正在观看MVA上的一个视频,Jeremy Foster在演示时问了一个问题,即如何使以下内容变得动态: [Authorize("Administrators, Users")] public ActionResult SomeAction() { //Access to only admins and users } 作为回答,亚当·图利伯说,可以用索赔的方式来实现,但我在互联网上找不到任何具体的东西,或者我可能不理解。但如果有人能告诉我怎
[Authorize("Administrators, Users")]
public ActionResult SomeAction()
{
//Access to only admins and users
}
作为回答,亚当·图利伯说,可以用索赔的方式来实现,但我在互联网上找不到任何具体的东西,或者我可能不理解。但如果有人能告诉我怎么做我会很感激的
这一点很重要,因为稍后,我可能希望允许另一个角色访问SomeAction
,如果每次都需要重新编译和部署应用程序,那就不好了。此外,我可能会将控制权授予用户,以更改其他类型用户的访问权限
在过去,我通过覆盖
Authorize
属性来实现这一点,在该属性中,我从cookie中提取用户的RoleId,并从数据库中检查用户是否有权访问所请求的操作。但不确定如何使用索赔来完成。这样的事情怎么样:
您可以将其与数据库一起使用,或者只需在web.config中维护授权角色的列表
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class MyCustomAuthorizationAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
// Do some logic here to pull authorised roles from backing store (AppSettings, MSSQL, MySQL, MongoDB etc)
...
// Check that the user belongs to one or more of these roles
bool isUserAuthorized = ....;
if(isUserAuthorized)
return true;
return base.AuthorizeCore(httpContext);
}
}
这就是我说的我以前做过的。但这似乎不是像身份识别这样基于索赔的系统的发展方向。