asp.net - .NET 基于角色的资源访问 - 最佳实践
问题描述
我正在开发一个 .NET MVC 应用程序,目前仅使用基于角色的访问控制。例如,我正在包装我的控制器端点[Authorize(Roles="Provider")]
。现在,我还想添加对资源的添加权限,例如,不仅要说明用户是否可以编辑文档,还要定义它可以编辑的文档。所以我希望它看起来像 -
[Authorize(Roles="Provider")]
[Authorize("CanEditObject1")]
这样做的最佳做法是什么?这里需要什么类型的授权?也许我需要混合一些(基于角色的访问+基于策略的访问)?我需要更改我的整个身份验证方法还是只添加它?
解决方案
您将需要查看政策。当我尝试为授权标签助手提交 PR 并且再也没有回复时,我也很快学会了这一点。简而言之,在您的组合根处定义策略并检查具有授权属性的策略。
但是,除非您可以建立成员级别,否则行级别访问可能需要额外检查。
推荐阅读
- javascript - 当 iframe 中嵌入的 YouTube 视频不在子窗口中播放时,如何修复它?
- android - Android Studio:无法在工具窗口中运行模拟器
- docker - 如何让 docker 容器运行一些后台进程
- amazon-web-services - 如何从 AWS S3 Glacier 下载存档文件
- php - 如何在 Sabre DAV 的 PDO 类中获取用户的明文密码?
- ios - Twilio 移动推送凭证和 iOS:沙盒复选框有什么用?
- android - 如果我没有在 OnMessageReceived 中打开通知,为什么 Firebase 推送通知会自动显示通知
- javascript - 动态地将歌词文本添加到正在播放的音频文件中
- javascript - 使用 jquery 在另一个函数上创建克隆
- java - 在 Java 中检查 mime 类型