目前我正在尝试在我的webform应用程序中实现基于活动的授权。在我的应用程序中,您有不同的角色:管理员,经理,员工和实习生。
应用程序通过我的BLL(业务逻辑层)与我的数据库进行通信,我正在尝试做的是,在BLL中为所有实体的所有读取器和管理器文件授予方法级别的授权,如下所示:
[Authorize(Activity = "CreateUser")]
public static void InsertUser( ... )
[Authorize(Activity = "UpdateEmployee")]
public static void UpdateEmployee( ... )
对于我想要CRUD活动的每个方法,在数据库中,我想告诉哪些角色可以做什么活动,或类似这样的东西。
除了登录之外,基于角色的安全性不是一种选择,因为例如,除了一个实体之外,不允许受训者插入或删除任何数据。因此,我需要在我的网络表单中使用基于权限/活动的授权。
目前我所能找到的只是MVC和.NET Core的解决方案,但对于webforms没有任何解决方案,或者2011年的帖子都没有真正提供解决方案,我想知道是否有任何新想法或到目前为止的解决方案。
在我的项目中,我使用FormsAuthentication,在我的webconfig文件中,我为特定角色自动化特定角色和路径。但这不会削减它。我还使用带有FormsIdentity的全局文件中的Application_OnPostAuthenticateRequest和我的自定义主体类,它使用了IIDentity和IPrincipal。
此外,我的AddEdit页面是相同的页面,并且基于URL中传递的查询字符串,如userId或employeeId,保存按钮决定它是插入还是更新。所以这就是我需要在方法上使用auth的原因。
所以我的问题是,是否有人知道我可以在asp.net 4.5 webforms中实际实现的模式,该模式可以获得基于权限或活动的授权,而无需对所有内容进行硬编码,以便更具未来性?