我有一个使用动态数据设置的许多数据库的管理部分。当用户登录时,他们会看到一个他们有权修改的数据库列表(这个列表保存在一个单独的数据库中,该数据库与用户的登录信息相关联,并且还列出了他们可以查看的表)。单击数据库后,表格列表随即显示在动态数据站点的同一 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”是一个字符串[],在上面的场景中保存了我的表名。有没有办法获取元模型并对其进行编辑,以便每个用户都无法访问剩余的表?