動的データを使用して設定された多くのデータベースの管理セクションがあります。ユーザーがログインすると、変更するためのアクセス権を持つデータベースのリストが表示されます (このリストは、ユーザーのログイン情報に関連付けられた別のデータベースに保持され、表示が許可されているテーブルもリストされます)。データベースをクリックすると、動的データ サイトの同じ default.aspx ページの 2 番目のグリッドビューにテーブルのリストが表示されます。
表示されるテーブルを、許可されたテーブルのデータベース エントリに対応するテーブルに制限する方法を見つけましたが、テーブル エントリを表示すると、アクセス権のないテーブルへの外部キーの関連付けが動的データ ハイパーリンクとともに表示されます。それらのテーブルに直接連れて行ってください。
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」がテーブル名を保持する string[] であると仮定します。ユーザーごとに残りのテーブルにアクセスできないように、メタモデルを取得して編集する方法はありますか?