Permitir apenas determinados usuários Editar ASPxGridView
-
05-07-2019 - |
Pergunta
Eu tenho um ASPxGridView que eu gostaria de permitir que alguns usuários ter lido e os demais usuários acesso de gravação. Idealmente, isso seria baseada em grupos do Active Directory.
Como posso fazer isso?
Solução 2
Já acabou criando um manipulador de eventos para o evento DataBound e incapacitante da Coluna de comando da seguinte forma:
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;
}
}
}
}
Outras dicas
Se você estiver usando a edição no local de linhas, então seria uma questão de esconder os controles que permitem ao usuário editar a grade.
Você pode fazer isso por enganchando em evento RowDataBound do GridView com um manipulador de eventos, e verificar a função do usuário. Se eles não o cheque, ocultar os controles de edição.
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;
}
}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow