Comment implémenter une sécurité basée sur les rôles à l'aide de Dynamic Data et Active Directory?

StackOverflow https://stackoverflow.com/questions/604175

Question

Quel est le meilleur moyen d'implémenter la sécurité à l'aide de rôles Active Directory sur un site de données dynamiques asp.net?

Je souhaite limiter certaines vues (et les liens associés) à certains rôles. En d'autres termes, l'utilisateur A ne peut afficher que les actions de liste pour la table x et l'utilisateur B ne peut afficher que les actions de liste pour la table y

Était-ce utile?

Autres conseils

Je l'ai fait dans de nombreuses applications.

Activer l'authentification Windows pour votre application.

Créez un objet pouvant stocker les informations d'identification de l'utilisateur et le stocker dans la session pour une récupération rapide. Si ce n'est pas là, vous pouvez le reconstruire rapidement. J'ai généralement défini chaque rôle sur un peu, par exemple:


enum USER_ROLE : int
{
  Role1 = 1,
  Role2 = 2,
  Role3 = 4,
  Role4 = 8,
  etc
}

if (Context.User.IsInRole("Roll1Name")) YourUserObject.Roles += USER_ROLE.Role1;
if (Context.User.IsInRole("Roll2Name")) YourUserObject.Roles += USER_ROLE.Role2;
etc

Ensuite, chaque fois qu'un contrôle doit être sécurisé, je le passe dans une fonction qui prend un contrôle HTML et une propriété basée sur le rôle de l'utilisateur et les exigences de sécurité pour ce contrôle.

Par exemple. bool SetControlSecurity (HtmlControl ctrl, int iUserRoles, int iControlRoles, ACTION eAction)

Ainsi, un exemple de panneau peut être:

SetControlSecurity (pnlUserInfo, YourUserObject.Roles, eRole.Role2, ACTION.Hide);

J'ai également l'habitude de définir le type d'action à exécuter en cas d'échec de la sécurité, comme masquer, lire seul, effacer les données, etc.

Il est facile de comparer le rôle dans la fonction:


bool bHasAccess = ((iUserRole & iControlRoles) > 0);
if (bHasAcess)
{
  // leave the control or make sure it is visible etc
}
else
{
  // take action to secure the control based on the action
}

L’espoir que cela aide.

Vous pouvez simplement utiliser le logiciel ASP.NET Active Directory Memebrship & amp; Les fournisseurs de rôle à authentifier \ autorisent les utilisateurs à l'application. Ensuite, vous pouvez appeler le Roles.IsUserInRole à tout moment. pour que l'appartenance au rôle AD vérifie que les utilisateurs font partie des groupes appropriés avant de restituer le contenu.

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