Permitir solo a ciertos usuarios editar ASPxGridView
-
05-07-2019 - |
Pregunta
Tengo un ASPxGridView al que me gustaría permitir que algunos usuarios lean y otros usuarios tengan acceso de escritura. Idealmente, esto estaría basado en grupos de Active Directory.
¿Cómo puedo hacer esto?
Solución 2
Terminé creando un controlador de eventos para el evento DataBound y deshabilitando la columna de comandos de la siguiente manera:
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;
}
}
}
}
Otros consejos
Si está utilizando la edición de filas en el lugar, sería cuestión de ocultar los controles que le permitirían a un usuario editar la cuadrícula.
Puede hacer esto conectándose al evento RowDataBound de GridView con un controlador de eventos y verificando la función del usuario. Si no pasan la verificación, oculte los controles de edición.
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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow