Question

J'utilise l'appartenance ASP.NET et j'ai remarqué qu'il n'y avait pas de méthode dans les La classe de rôles pour modifier un rôle (son nom, par exemple), uniquement pour les créer et les supprimer.

Est-ce possible ou non pris en charge?

EDIT: @CheGueVerra: Oui, belle solution de contournement.

Savez-vous (pour un crédit supplémentaire :)) pourquoi ce n'est pas possible?

Était-ce utile?

La solution

Il n’existe aucun moyen direct de modifier un nom de rôle dans le fournisseur d’appartenance.

Je voudrais obtenir la liste des utilisateurs qui se trouvent dans le rôle que vous souhaitez renommer, puis les supprimer de la liste, supprimer le rôle, créer le rôle avec le nouveau nom, puis Ajouter les utilisateurs trouvés précédemment au rôle avec le nouveau nom.

public void RenameRoleAndUsers(string OldRoleName, string NewRoleName)
{
    string[] users = Roles.GetUsersInRole(OldRoleName);
    Roles.CreateRole(NewRoleName);
    Roles.AddUsersToRole(users, NewRoleName);
    Roles.RemoveUsersFromRole(users, OldRoleName);
    Roles.DeleteRole(OldRoleName);
}

Cela modifiera le nom du rôle pour tous les utilisateurs du rôle.

Suivi: les rôles sont utilisés pour garantir qu'un utilisateur ne joue que son rôle dans le système. Ainsi, User.IsInRole (ROLE_NAME) vous aidera à appliquer les valeurs du BR qui s'appliquent, pour un utilisateur et pour les rôles dans lesquels il est Si vous pouvez modifier les noms de rôle à la volée, comment allez-vous valider que l'utilisateur occupe réellement ce rôle? C'est ce que j'ai compris quand j'ai posé la question.

rtpHarry edit: Exemple de pseudocode converti en méthode compilable c #

Autres conseils

Le fait de renommer un rôle dans le modèle d’appartenance ASP.NET par programme constituerait une mauvaise chose & # 8482 ;, car les noms de rôle sont utilisés dans le fichier de configuration pour définir les autorisations. S'il existait un moyen par programme de modifier le nom du rôle (qui persistait dans la base de données), vous interrompriez immédiatement toute configuration de sécurité basée sur le rôle dans web.config pour les applications Web utilisant la base de données. pour garantir qu’une seule application Web puisse modifier la configuration de chaque application Web utilisant cette base de données d’appartenance.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top