Rob*_*vey 5 c# security asp.net-mvc access-control document-management
我已经了解ASP.NET MVC中的用户和基于角色的安全性.但现在我需要一些更精细的东西.
假设我有一份文档列表,其中一些是用户授权的,有些则不是.每个文档在数据库的文档表中都有相应的记录.如果用户具有安全访问权限,则可以下载文档以供查看.如果您有角色,也可以添加文档.每个文档都有一个URL,每个文档列表都有一个URL.
我希望安全修整列表,以便用户只能看到他授权的文档.但是我还需要对这些列表和文档的URL请求进行身份验证,因为没有什么可以阻止用户为他们不再有权访问的文档添加书签,或者只是在浏览器中键入URL.
内置的基于角色的安全模型是否适用于此,或者我是否需要创建单独的基于表的安全性?我可以将安全性放在我的存储库中,以便返回的记录已被修剪,或者它应该是控制器的一部分吗?我是否需要安全属性来验证控制器请求,或者我应该将它作为前几行代码放在控制器方法中?
@罗伯特,我认为当你说你应该在它们到达视图之前修剪它们时,你已经回答了你自己的问题。因此,在您的业务逻辑中,作为对存储库的偏好,您可能需要执行 lamda 来修剪多余的部分。
我认为我永远不会将任何记录返回到不允许用户查看的视图。为什么会增加风险和流量?
至于书签,我认为您需要执行一些业务逻辑,以防止它们在访问不再存在时转到该网址。
我认为控制器只是为页面提供数据服务,而不具有任何逻辑,因此我更喜欢使用业务层方法,因为它确实看起来是一种业务规则。
这可能不是您想要的,但除非有更好的方法,否则我会使用它。
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |