我有一个ASP.Net Web窗体应用程序,我在其中使用基于表单的身份验证与成员身份和角色提供程序,这适用于身份验证和控制对目录和/或文件的访问.现在我发现自己需要控制对各个实体实例的读取,写入和删除访问,例如能够更新或删除客户的实例.我一直试图想出一个很好的方法来实现这个,但我真的不知道从哪里开始.我读到了ASP.Net MVC中的Authorize属性并且认为有类似的东西会很好 - 装饰方法就像ASP.Net MVC中的控制器动作一样.我不知道在Web窗体世界中有任何开箱即用的方法来实现这一点,并且不知道任何可能帮助我朝这个方向前进的框架或其他工具.任何有关现有解决方案和/或如何设计我自己的实现的建议都将不胜感激.
最简单的方法是要求用户是相关方法所需角色的成员PrincipalPermissionAttribute
.
[PrincipalPermission(SecurityAction.Demand, Role="Supervisor")] [PrincipalPermission(SecurityAction.Demand, Role="Owner")] public void DeleteSomething() {...}
请注意,这意味着主管或所有者可以DeleteSomething()
.