我正在尝试使用ASP.NET身份,并希望我的角色具有权限。然后,用户可以扮演一组角色,以决定他们拥有的权限
我在ASP.NET身份中找不到任何相关的对象 - 使用ASP.NET身份可以实现吗?
非常感谢
简短的答案是否定的,不是开箱即用。您需要"自己滚动"。
如果您在微软自己的网站之一上阅读了本文,该网站谈论在ASP.NET中创建和管理角色,您会注意到没有关于权限的讨论。ASP.NET角色框架非常简单。
自己滚动有点学习曲线,但旅程会令人振奋!我(和其他人)这样做的方式是我创建了一个新的类,该课程实现了iPrincipal,然后添加了一个新的自定义,称为haspermission(允许questiondpermissionId),它可以为权限提供" isInrole(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;
}
您可以通过阅读以下文章:自定义身份验证和授权以及实现ASP.NET的自定义身份验证,了解有关整合自定义Iprincipal实现的更多信息。还有许多其他文章,例如这两篇。我之所以选择这两个,是因为一目了然,他们似乎涵盖了我最终在项目中实施的一切。
祝你好运!我很有趣地构建自己的相同实现。