特定のユーザーにASPxGridViewの編集のみ許可
-
05-07-2019 - |
質問
一部のユーザーに読み取りアクセスを許可し、他のユーザーに書き込みアクセスを許可するASPxGridViewがあります。理想的には、これはActive Directoryグループに基づいています。
どうすればいいですか?
解決 2
次のように、DataBoundイベントのイベントハンドラーを作成し、コマンド列を無効にしました:
protected void ASPxGridView1_DataBound(object sender, EventArgs e)
{
if (!User.IsInRole(ConfigurationSettings.AppSettings["EditActiveDirectoryGroup"]))
{
foreach (GridViewColumn c in ASPxGridView1.Columns)
{
if (c.GetType() == typeof(GridViewCommandColumn))
{
c.Visible = false;
}
}
}
}
他のヒント
行のインプレース編集を使用している場合、コントロールを非表示にすることで、ユーザーがグリッドを編集できるようになります。
これを行うには、イベントハンドラーでGridViewのRowDataBoundイベントにフックし、ユーザーのロールを確認します。チェックに失敗した場合は、編集コントロールを非表示にします。
void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
if (!Roles.IsUserInRole("Admin"))
{
// Hide the edit controls.
// This would be your "Edit" button or something.
e.Row.Cells[1].Controls[0].Visible = false;
}
}
}
所属していません StackOverflow