3

我有一个 ASP.Net Web Forms 应用程序,我在其中使用基于表单的身份验证以及成员资格和角色提供程序,这对于验证和控制对目录和/或文件的访问非常有用。现在我发现自己需要控制对单个实体实例的读取、写入和删除访问,例如能够更新或删除客户的实例。我一直在想一个很好的方法来实现它,但我真的不知道从哪里开始。我阅读了 ASP.Net MVC 中的 Authorize 属性并认为有一些类似的东西会很好——装饰方法就像你可以在 ASP.Net MVC 中控制动作一样。不过,我不知道在 Web 表单世界中有什么开箱即用的方法来实现这一点,也不知道有任何框架或其他工具可以帮助我朝着这个方向前进。任何关于现有解决方案和/或如何设计我自己的实现的建议都将不胜感激。

4

2 回答 2

6

最简单的方法是要求用户是相关方法所需角色的成员PrincipalPermissionAttribute

[PrincipalPermission(SecurityAction.Demand, Role="Supervisor")]
[PrincipalPermission(SecurityAction.Demand, Role="Owner")]
public void DeleteSomething() {...}

请注意,这意味着 Supervisor OR Owner 可以DeleteSomething()

于 2009-02-11T23:42:50.330 回答
0

我不认为“PrincipalPermission”是一个好方法。如果,我需要为另一个角色允许 DeleteSomthing() 怎么办?同样,如果我需要删除 DeleteSomthing() 的现有角色?唯一的方法是在代码级别更改属性。这对于大型项目来说根本不可行。

我也在寻找一个不错的解决方案。

于 2009-09-24T17:59:56.593 回答