Autoriser uniquement certains utilisateurs à modifier ASPxGridView
-
05-07-2019 - |
Question
J'ai un ASPxGridView que je voudrais autoriser à certains utilisateurs à lire et à d'autres utilisateurs en écriture. Idéalement, cela serait basé sur des groupes Active Directory.
Comment puis-je faire cela?
La solution 2
J'ai fini par créer un gestionnaire d'événements pour l'événement DataBound et en désactivant la colonne de commande comme suit:
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;
}
}
}
}
Autres conseils
Si vous utilisez l'édition sur place de lignes, il vous suffira alors de masquer les commandes permettant à un utilisateur de modifier la grille.
Vous pouvez le faire en raccordant l'événement RowDataBound de GridView avec un gestionnaire d'événements et en vérifiant le rôle de l'utilisateur. Si la vérification échoue, masquez les contrôles de modification.
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;
}
}
}