我正在研究一个ASP.NET MVC3应用程序的安全框架,该应用程序在哪些人可以查看数据,哪些人可以创建和编辑数据方面,将有一些非常复杂的授权规则。规则,例如-我只能看到属于我的公司或分支机构的客户。-如果我在创建记录之日起15天或更短的时间内离开,并且我的角色是超级用户,则只有我可以编辑该记录上除两个字段之外的所有字段。16天或更长时间后,我只能编辑两个字段。
我最初的想法是使用企业安全块,只添加定制的授权器,但在阅读了更多关于ASP.NET中对基于成员的安全性的本地支持后,我不太确定是否有必要使用企业安全块。我还没有在实际的应用程序中使用过这两个框架,所以我希望在这个主题上集思广益。
发布于 2011-09-15 09:12:29
这就是复杂字段级别安全性的问题。没有真正的框架来帮助你,因为所有的东西都是定制的。最好的做法是将其提取到某种查找表中,并为表中的每个字段分配一个自定义标识符,然后拥有一组指示每个安全级别的列。然后,构建业务逻辑,以便传入一个字段和条件,它只是简单地响应是否允许它。
THen你必须弄清楚“允许”在你的界面中是什么意思。是否禁用它?藏起来?忽略它?
我并不羡慕你。
您可能会发现这不是很有趣。
http://bartreyserhove.blogspot.com/2008/12/field-level-security-using-aspnet-mvc.html
发布于 2014-09-23 23:38:24
您可以使用Azman - Microsoft授权管理器及其相关API。
它为您提供角色、操作、权限和更多可配置选项。
Azman使用AD来存储大部分内容。它还提供了使用本地XML和/或配置文件进行存储的选项。
发布于 2011-09-15 08:07:07
在这里,您不仅涉及到直接的安全问题,还涉及到实际的授权规则和编辑规则。您的身份验证规则听起来非常自定义,我觉得您可能需要在自己的自定义代码中处理这些规则,然后将这些属性包含在您自己的视图模型中。
我不知道有任何框架会默认给你这个,因为这些是非常自定义的编辑规则。您可以调用这些声明,并且当您登录时会违反基于声明的框架,例如windows身份基础(WIF),但是您仍然需要自定义的IF stmts,以允许基于您在ViewModel中设置的属性(例如CustomerViewModel.AllowAddressEdit )在视图中进行编辑。您的视图需要选中此属性才能显示DisplayFor或EditorFor。然而,你也应该在回发时检查这些值,以确保用户没有注入值来攻击你的应用程序。
https://stackoverflow.com/questions/7424301
复制相似问题