Consenti solo ad alcuni utenti di modificare ASPxGridView
-
05-07-2019 - |
Domanda
Ho un ASPxGridView che vorrei consentire ad alcuni utenti di leggere e ad altri utenti che hanno accesso in scrittura. Idealmente, ciò si baserebbe su gruppi di Active Directory.
Come posso farlo?
Soluzione 2
Ho finito per creare un gestore eventi per l'evento DataBound e disabilitare la colonna comandi come segue:
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;
}
}
}
}
Altri suggerimenti
Se si utilizza la modifica sul posto delle righe, si tratterebbe di nascondere i controlli che consentirebbero a un utente di modificare la griglia.
Puoi farlo collegandoti all'evento RowDataBound di GridView con un gestore eventi e controllando il ruolo dell'utente. Se falliscono il controllo, nascondi i controlli di modifica.
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;
}
}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow