以编程方式阻止对动态数据表的访问

时间:2012-11-27 20:43:23

标签: asp.net database entity-framework dynamic-data

我有一个管理部分,用于使用动态数据设置的许多数据库。当用户登录时,会向他们显示他们有权修改的数据库列表(此列表保存在与人员登录信息相关联的单独数据库中,并列出允许他们查看的表格)。单击数据库后,表格列表将显示在动态数据站点的同一default.aspx页面上的第二个网格视图中。

我找到了一种方法,将显示的表限制为与允许表的数据库条目对应的表,但是,在查看表条目时,任何与表无条件关联的表的外键关联都会显示在动态表中数据超链接,直接将您带到这些表。

Soooo,如果你还在我身边,谢谢你。 我的想法是检查global.asax文件,其中元模型被绑定,而不是支持应该无法访问的表。这可以以编程方式完成吗?我会发布一些代码,但我不确定需要什么。这是我想我可以进行编辑的地方:

foreach (var table in metaModel.Value.Tables)
                    {
                        var tablePermission = authorizedTables.Any(p => p == table.Name);
                        if (tablePermission) continue;

                        //Next lines are possible ways in?
                        var canThisBeSetSomehow = table.Attributes.OfType<ScaffoldTableAttribute>().FirstOrDefault();
                        table.Scaffold = false;
                    }

假设“authorizedTables”是一个字符串[],它在上面的场景中保存我的表名。有没有办法获取元模型并对其进行编辑,以便每个用户无法访问其余的表?

再次感谢您花时间阅读所有这些内容,我们将非常感谢您的帮助。

0 个答案:

没有答案