Asp.net identity 如何在asp.net标识中设置权限

Asp.net identity 如何在asp.net标识中设置权限,asp.net-identity,Asp.net Identity,我正在尝试使用asp.net标识,希望我的角色具有权限。然后,用户可以拥有一组角色,这些角色规定了他们拥有的权限 我在asp.net identity上找不到任何与权限相关的对象-使用asp.net identity可以实现这一点吗 非常感谢简短的回答是不,不是现成的。你需要“自己滚” 如果您阅读了其中有关在ASP.NET中创建和管理角色的内容,您会注意到没有关于权限的讨论。ASP.NET角色框架非常简单 滚动你自己的是一个学习曲线位,但旅程将是令人振奋的!我(和其他人)这样做的方式是,我创建了

我正在尝试使用asp.net标识,希望我的角色具有权限。然后,用户可以拥有一组角色,这些角色规定了他们拥有的权限

我在asp.net identity上找不到任何与权限相关的对象-使用asp.net identity可以实现这一点吗


非常感谢

简短的回答是不,不是现成的。你需要“自己滚”

如果您阅读了其中有关在ASP.NET中创建和管理角色的内容,您会注意到没有关于权限的讨论。ASP.NET角色框架非常简单

滚动你自己的是一个学习曲线位,但旅程将是令人振奋的!我(和其他人)这样做的方式是,我创建了一个新类,该类实现并添加了一个名为HasPermission(PermissionId requestedPermissionId)的新自定义项,该自定义项对权限的作用与“IsInRole()”对角色的作用相同

大概是这样的:

public bool HasPermission(PermissionId requestedPermissionId) {

// "PermissionsHeld" is of type IEnumerable<PermissionId>

// If PermissionsHeld is null then the user doesn't hold any permissions
if(this.PermissionsHeld == null) {
    return false;
}

// Returns true when PermissionsHeld contains "requestedPermissionId"
return this.PermissionsHeld.FirstOrDefault(ph => ph.PermissionId == requestedPermissionId) != null;
}
public bool has权限(PermissionId requestedPermissionId){
//“PermissionsHeld”是IEnumerable类型
//如果PermissionsHeld为null,则用户不持有任何权限
if(this.PermissionsHeld==null){
返回false;
}
//当PermissionsHeld包含“requestedPermissionId”时返回true
返回此.PermissionsHeld.FirstOrDefault(ph=>ph.PermissionId==requestedPermissionId)!=null;
}
通过阅读以下文章,您可以了解有关集成自定义IPrincipal实现的更多信息:和。还有很多其他类似这两篇的文章;我选择了这两个,因为乍一看,它们似乎涵盖了我最终在项目中实现的所有内容

祝你好运!我在构建我自己的实现时玩得很开心。

这里有一篇相关的博客文章: