1

我有一个动态数据 ASP.NET 应用程序,要求为某些用户提供表 X、Y 和 Z,而其他用户只提供 X 和 Z。所有这 3 个表都使用标准 ListDetails 页面模板,我们真的希望避免创建x、y 和 z 的自定义页面。处理这种安全性的最佳方法是什么?

我们所有的权限都存储在具有布尔属性的客户用户类中。所以在这个例子中,我们有 CanViewX、CanViewY 和 CanViewZ。

我们不想将表名硬编码到代码中。

编辑
我突然意识到这可能需要更多解释,因为它有一个赏金......我们正在使用 DynamicData 框架,我们希望避免为列表、listdetails、编辑等创建客户页面。对于将在站点中访问的每个不同的表。我们有特殊要求会阻止一个用户触摸桌子 A,但他们可以触摸 B 和 C。而其他用户可能只能触摸 A 和 B。

我们正在寻找有关如何处理此问题的建议和解决方案,而无需在代码中的任何位置对表名进行硬编码。

4

4 回答 4

3

您是否尝试过按照此项目中的步骤操作:

http://csharpbits.notaclue.net/2008/05/introduction-this-project-is-going-to.html

希望有帮助。

于 2009-03-06T05:52:26.007 回答
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();
}
于 2009-02-28T00:34:50.187 回答
1

除了前面提到的我的博客中的文章,您还可以查看使用路由处理程序的 codeplex 上的 Securing Dynamic Data 示例。

于 2009-03-19T17:18:53.390 回答
1

我想提一下,在新的 Dyanmic Data Preview 3 中,有一个支持基于角色的安全性的新功能 DomainService 请在此处查看 MIX09 中的 David Ebbo 的 Serssion Microsoft ASP.NET 4.0 Data Access: Patterns for Success with Web Forms MIX09-T47F

于 2009-03-23T16:40:46.553 回答