我有一个带有几个网格的页面和一个带有 7 个控件的小表单。网格显示辅助数据。总体而言,大约有 320 行代码隐藏处理各种事件。我的要求是一个特定角色只能编辑 7 个字段中的 3 个字段,而有权访问此页面的所有其他角色都可以编辑所有这些字段。
现在我的问题。我们通常采用将基于角色的安全性限制在页面级别的方法,因为通过在 .Net 中执行该安全性变得完全可配置。但是在这种情况下,由于这个要求,我即将破例,这是我没有模式的新领域。为仅访问 3 个控件的角色创建一个单独的页面,我必须做大量的代码重复,这使得这不是一种选择——即使我将一些东西放入用户控件中,这似乎是不合理的工作量反正。
我的第一个想法是禁用 page_load 事件中当前用户无法访问的所有控件,但这感觉很难看。有没有更好的方法来做到这一点?