我有一个动态数据ASP.NET应用程序,需要为一些用户提供表X,Y和Z以及其他只有X和Z.这三个表都使用标准的ListDetails页面模板,我们真的想要避免为x,y和z创建自定义页面。处理此安全性的最佳方法是什么?
我们的所有权限都存储在具有布尔属性的客户用户类中。所以在这个例子中,我们有CanViewX,CanViewY和CanViewZ。
我们不想将表名硬编码到代码中。
修改
我突然意识到这可能需要更多的解释,因为它有一个赏金...我们正在使用DynamicData框架,我们希望避免为列表创建客户页面,listdetails,编辑等等可在站点中访问的每个不同表。我们有特殊要求会阻止一个用户触摸表A,但他们可以触摸B和C.而其他用户可能只能触摸A和B.
我们正在寻找有关如何处理此问题的建议和解决方案,而无需在代码中的任何位置对表名进行硬编码。
答案 0 :(得分:3)
您是否尝试过按照此项目中的步骤进行操作:
http://csharpbits.notaclue.net/2008/05/introduction-this-project-is-going-to.html
希望有所帮助。
答案 1 :(得分:1)
C#:
protected void Page_Load(System.Object sender, System.EventArgs e)
{
ToggleTables();
}
private void ToggleTables()
{
tableXid.Visible = canviewx();
tableYid.Visible = canviewy();
tableZid.Visible = canviewz();
}
答案 2 :(得分:1)
除了前面提到的博客中的文章,您还可以查看使用路由处理程序的安全Dynamic Data sample on codeplex。
答案 3 :(得分:1)
我想提一下,在新的动态数据预览3中,有一项新功能域服务支持基于角色的安全性,请参阅MIX09中的David Ebbo的Serssion Microsoft ASP.NET 4.0 Data Access: Patterns for Success with Web Forms MIX09-T47F