IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Autorisation gérée par ASP.NET C#


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 26
    Points : 6
    Points
    6
    Par défaut Autorisation gérée par ASP.NET C#
    Bonjour à tous,

    J'ai une petite question concernant les autorisations par rapport aux connexions d'un utilisateur sur mon application. On s'y connecte par authentification Windows à travers Active Directory.
    L'admin aura tous les droits tandis que les autres utilisateurs (inscrits et dans un groupe d'active directory) ne pourront voir que certaines rubriques de mon site.

    J'aimerai savoir comment traduire en C#:
    "Si administrateur alors:
    Requête SQL donnant tous les droits
    Si utilisateurs du groupe alors:
    Autres requêtes d'affichage SQL
    Sinon:
    Pas d'affichage du site web"

    ça fait très basique mais j'aimerai tout simplement savoir si on peut utiliser le nom d'un groupe active directory dans le code ASP.NET C# pour gérer les autorisations et si oui comment? Sachant que la connexion se fait par authentification Windows.
    Au niveau des requêtes, je sais lesquelles écrire. Il me manque juste la "traductions" des instructions If/Else en fait...

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Si tu n'utilises que l'authentification Windows alors c'est assez simple. Tu peux t'inspirer du code suivant :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    var context = new PrincipalContext(ContextType.Domain, "TONDOMAINE");		// On crée un contexte pour le domaine
    var user = UserPrincipal.FindByIdentity(context, "TonUserName");		// On cherche l'utilisateur
    var groupAdmin = GroupPrincipal.FindByIdentity(context, "LeGroupeAdmin");	// On cherche le groupe Admin
    var groupIT = GroupPrincipal.FindByIdentity(context, "LeGroupeIT");		// On cherche le groupe IT
     
    if (user != null && user.IsMemberOf(group)) // On vérifie si l'utilisateur fait partie du groupe Admin
    {
    	// Il en fait partie, donc on fait quelque chose ici...
    }
    else if (user != null && user.IsMemberOf(groupIT)) // Sinon on vérifie si l'utilisateur fait partie du groupe IT
    {
    	// Il en fait pas partie, donc on fait autre chose ici...
    }
    else	// Sinon, s'il ne fait partie d'aucun groupe
    {
    	// On fait autre chose ici...
    }
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Tu peux le récupérer comme ceci :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    var userLogin = Page.User.Identity.Name;

    En s'assurant que IsAuthenticated vaut True, il est aussi possible d'utiliser :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    var userLogin = HttpContext.Current.User.Identity.Name;
    Ou encore ceci :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    var userLogin = HttpContext.Current.Request.LogonUserIdentity.Name;

    Dans tous les cas en principe tu devrais récupérer le domaine et le login sous cette forme : "DOMAIN\Login", donc il ne faut pas oublier de supprimer le domaine.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 26
    Points : 6
    Points
    6
    Par défaut
    Wahou Merci DotNetMatt, ça m'aide beaucoup!!

    Juste une petite question (encore), pour le var user, comment fait-on pour récupérer directement le nom d'utilisateur que l'utilisateur rentre directement?

    Et j'ai une seconde question aussi.. Que dois-je mettre à la place de PrincipalContext(); UserPrincipal; et GroupPrincipal? Est-ce que ce sont des méthodes qu'il faut que je code? Car sinon, ça me le souligne me demandant une directive using, sauf que rien n'est proposé comme référence...

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Pour la première question voir ma dernière réponse.

    Pour le reste, il faut ajouter une référence dans ton projet vers l'assembly System.DirectoryServices.AccountManagement.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 26
    Points : 6
    Points
    6
    Par défaut
    Excuse moi, j'éditais mon message au moment où tu m'as répondu. Merci beaucoup pour ton aide! J'ai juste une petite erreur quand je lance mon application à partir de IIS qui est:

    System.DirectoryServices.DirectoryServicesCOMException: Une erreur d’opération s’est produite.

    Pourtant quand je lance depuis mon visual studio, cela fonctionne nickel..

    En tout cas, je te remercie de ton aide, j'ai appris et surtout compris vachement de trucs!

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    L'utilisateur de ton application pool n'a pas être pas les droits suffisant pour intérroger l'AD...

  8. #8
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Je confirme les propos de Dokho1000.

    Tu as plusieurs options :
    - Si l'application pool tourne avec un compte de service, tu peux lui donner les permissions pour lire dans l'AD.
    - Si l'application pool tourne avec un compte local, tu peux le basculer sur un compte de service qui a les droits de lire dans l'AD.

    - Tu peux tenter "l'impersonification", mais cela peut avoir des effets de bord, par exemple au niveau de la base de données, selon la manière dont tu as géré la sécurité... Pour cela il faut ajouter ce qui suit dans le noeud System.Web de ton web.config :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <identity impersonate="true" />
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 26
    Points : 6
    Points
    6
    Par défaut
    Désolée pour la réponse tardive,

    J'ai testé justement le:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <identity impersonate="true" />
    Car dans plusieurs discussions, ils disaient que c'était un moyen de régler le problème. Mais personnellement, ça me cause encore plus d'erreurs.

    Du coup, je voulais savoir comment donner les permissions à mon IIS pour lire dans l'AD?

    Et j'ai une autre petite question: est-il possible, tout comme nous l'avons fais avec l'utilisateur, de récupérer le nom du groupe auquel il appartient? (faire la chose à l'envers en fait).

    Merci à vous deux en tout cas, vous m'aidez beaucoup!!

    EDIT: Mon pool d'application a comme identité "ApplicationPoolIdentity". Est-ce ici que je dois faire quelque chose? Comment autoriser AD? Je tiens également à préciser que dans mon application (dans IIS), les règles d'autorisation autorisent tous les utilisateurs à accéder au contenu web...

  10. #10
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    L' "impersonification" n'est pas forcément la bonne solution Ca peut aider dans certains scénarios mais ca peut aussi mettre le bazar.

    Le mieux c'est que tu crées un compte de service dans l'AD. Ensuite tu remplaces l'identité de ton application pool par ce compte de service. Plus d'infos sur les comptes de service : Managed Service Accounts: Understanding, Implementing, Best Practices, and Troubleshooting.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  11. #11
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 26
    Points : 6
    Points
    6
    Par défaut
    Merci pour toute ton aide DotNetMatt .
    Je m'y penche mais j'avoue être débutante dans l'utilisation d'AD et d'IIS, donc je suis un peu perdue.
    Il faut obligatoirement créer un compte de service pour pouvoir ajouter les permissions sur IIS? Avec mon compte actuel d'AD où je créais mes utilisateurs et tout, ce n'est pas possible?
    Désolée si mes questions paraissent bêtes, j'essaye juste de comprendre la technique car je ne voudrais pas faire quelque chose sans comprendre la cause...

    Merci encore beaucoup pour ta grande aide!

  12. #12
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Au niveau des comptes utilisateur, il faut distinguer 2 types :
    - Les comptes locaux, qui sont propres à ton PC
    - Les comptes "réseau", qui sont stockés dans l'AD et qui peuvent être utilisés sur tout le réseau (domaine).

    Quand avec IIS tu utilises le compte par défaut (ApplicationPoolIdentity), celui-ci ne fait pas partie de l'AD donc il n'a aucune permission de lecture/écriture au sein de l'AD.

    En utilisant un compte de service, celui-ci faisant partie de l'AD, tu peux alors lire et/ou écrire dans, et en prime il est bien plus simple de gérer les accès à d'autres ressources du réseau. Par exemple si tu veux que ton application Web puisse aller lire sur un dossier partagé, alors tu pourras autoriser ton compte de service à y accéder beaucoup plus simplement.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  13. #13
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 26
    Points : 6
    Points
    6
    Par défaut
    Wahou, Merci beaucoup pour toutes tes explications . Je comprend vraiment "la chose" maintenant, et le fonctionnement de ces comptes de service.


    Maintenant je tente juste de créer un compte de service dans l'AD. J'ai regardé l'aide sur Microsoft, ça a l'air compliqué, ils demandent d'utiliser le PowerShell (que je n'ai jamais utilisé pour le moment...) ...
    Dans ma naïveté, je pensais qu'il suffisait juste de faire Action -> Nouveau pour faire la manip'. Bref.

  14. #14
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Tu n'es pas obligée d'utiliser PowerShell, ils montrent juste les 2 facons de faire.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  15. #15
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 26
    Points : 6
    Points
    6
    Par défaut
    Re-Bonjour,

    Je suis enfin parvenue à mes fins Et je vous remercie beaucoup pour votre aide, particulièrement DotNetMatt! J'ai mis du temps mais j'y suis parvenue...
    J'ai juste une dernière question:
    Est-il possible de récupérer le nom du groupe auquel l'utilisateur appartient (comme nous le faisons avec l'utilisateur d'ailleurs) en supposant qu'il n'appartienne qu'à un seul groupe??

  16. #16
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Oui bien sûr, c'est faisable qu'il appartienne à 0 ou n groupes :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    private IEnumerable<GroupPrincipal> GetGroups(string userName)
    {
    	var domain = new PrincipalContext(ContextType.Domain);
    	var user = UserPrincipal.FindByIdentity(domain, userName);
     
    	if (user != null)
    	{
    		var groups = user.GetAuthorizationGroups();
    		foreach (var p in groups)
    		{
    			// On ne garde que les objets de type GroupPrincipal
    			if (p is GroupPrincipal)
    			{
    				yield return (GroupPrincipal)p;
    			}
    		}
    	}
    }
    A noter il faudra rajouter une référence à l'assembly System.DirectoryServices dans ton projet.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  17. #17
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 26
    Points : 6
    Points
    6
    Par défaut
    Je te remercie DotNetMatt pour ton bout de code.

    Je suis dessus depuis le début de l'après-midi, mais après maintes reprises, peu importe le nom d'utilisateur que je met en paramètre à cette méthode, il me renvoie:

    "Responsable.Accueil+d_0"
    Accueil correspond au nom de ma page.
    Sachant que mes groupes d'utilisateurs ressemblent à "Responsable_NomGroupe", c'est-à-dire qu'ils sont tous préfixés par "Responsable_" comme par exemple "Responsable_Rayons".
    As-tu une idée d'où cela peut provenir? Est-ce le Under score qui pose soucis? Car j'ai beau l'enlever, cela ne change rien...

  18. #18
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Aucune idée, tu as peut-être un problème d'encodage quand tu crées ton groupe ?

    Quand tu affiches les groupes dans l'AD tu vois aussi le suffixe +d_0 ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  19. #19
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 26
    Points : 6
    Points
    6
    Par défaut
    Nop je ne vois pas le suffixe..
    Par contre, pour afficher (vérifier) le nom du groupe, je l'affiche dans un label et du coup je suis obligée de convertir en ToString:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    label.Text = Convert.ToString(GetGroups("NomUtilisateur")
    Peut-être cela vient d'ici aussi... ? Car impossible de mettre des points d'arrêts dans la méthode ou autre pour voir la véritable valeur...

    Mon idée est juste, par rapport au premier code que tu m'as passé (deuxième message), remplacé le "GroupIT" par cette méthode, pour ne pas avoir à écrire ce bout de code pour chaque groupe créé. Je sais pas si je réussis à me faire comprendre . Donc est-ce que c'est vraiment possible de cette manière?
    Parce qu'imaginons que je remplace la ligne 4 par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var groupIT = GroupPrincipal.FindByIdentity(context, GetGroups(userLogin));
    J'ai l'erreur "La méthode surchargée possède des arguments non valides." Alors je dois sûrement mal la placer car dans la méthode GetGroups(), on fait déjà ce bout de code. Mais si j'écris tout simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var groupIT = GetGroups(userLogin);
    C'est cette ligne qui m'affiche une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if (user != null && user.IsMemberOf(groupIT))
    avec le même message précédent...

    Le pire c'est que j'ai l'impression de m'embrouiller à fond là. Mais bon, le premier soucis est tout de même que je n'arrive pas à obtenir simplement le nom du groupe auquel appartient mon utilisateur..

  20. #20
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Linsay Voir le message
    Le pire c'est que j'ai l'impression de m'embrouiller à fond là.
    Oui tu t'embrouilles.

    Dans l'AD un utilisateur peut faire partir de 1 ou n groupes. Comme on ne peut pas le savoir, on récupère tous les groupes. Donc la méthode GetGroups que je t'ai donné renvoie une liste.

    Ensuite pour trouver un groupe spécifique, il faut parcourir cette liste, avec une boucle foreach ou via LinQ.

    Je pense que tu as le +d_0 à la fin car ca doit être ajouté par la méthode ToString du type de base Principal.

    Donc concrètement, je pense que tu peux solutionner ce problème en faisant quelque chose comme suit :

    D'abord on appelle GetGroups pour récupérer tous les groupes de l'utilisateur. Ensuite on filtre pour ne garder que le groupe qui s'appelle "NomDuGroupeIT" :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var groupIT = GetGroups("user")
    		.Where(group => group.Name == "NomDuGroupeIT")
    		.FirstOrDefault();
    Ensuite pour récupérer son nom, tu peux faire :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (groupIT != null)
    {
    	var groupITName = groupIT.Name;
    }
    A noter si l'utilisateur ne fait pas partie du groupe IT alors la variable groupIT vaudra null...

    C'est ce que tu cherches à faire ?


    [EDIT]
    Après relecture de ton post, si tu cherches juste à savoir si l'utilisateur fait partie d'un groupe particulier tu peux faire plus simple :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var isITGroupMember = GetGroups("user")
    			.Where(group => group.Name == "NomDuGroupeIT")
    			.Any();
    Si isITGroupMember vaut true, c'est qu'il en fait partie, si false, il n'en fait pas partie.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

Discussions similaires

  1. IE 10 non reconnu par asp.Net
    Par Naceur84 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 12/12/2012, 12h09
  2. interpretation de <%= item.IdMenu%> par asp.net
    Par Namzicos dans le forum ASP.NET
    Réponses: 3
    Dernier message: 01/02/2010, 20h30
  3. Réponses: 1
    Dernier message: 06/08/2009, 11h15
  4. Réponses: 0
    Dernier message: 13/04/2009, 17h44
  5. probleme d'envoi de mail par asp.net
    Par tortuegenie dans le forum ASP.NET
    Réponses: 3
    Dernier message: 10/03/2008, 09h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo