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

C# Discussion :

Exécuter une requête LDAP en mode "run as"


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Par défaut Exécuter une requête LDAP en mode "run as"
    Bonjour à tous,

    Je suis en train de développer une appli web qui réalise des requêtes LDAP pour récupérer des infos dans un AD.

    Jusque là, je ne rencontre aucun problème sauf que les requêtes LDAP sont exécutées par le compte de service qui lance mon IIS .

    Je souhaiterai faire une sorte de "run as", c'est à dire utiliser un autre compte Windows pour exécuter mes requêtes LDAP.

    Comment faire (sachant que nous utilisons l'objet DirectoryEntry ?

    Code web.config : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <add key="AD_LOGIN" value="AdminNOT" />
    <add key="AD_PASSWORD" value="AdminOT1" />
    <add key="AD_PATH" value="LDAP://tmpdev.tmpdevvp.net" />



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    _directoryEntry = null;
    DirectorySearcher directorySearch = new DirectorySearcher(SearchRoot);
    directorySearch.Filter = "(&(objectClass=user)(SAMAccountName=" + userName + "))";
    SearchResult results = directorySearch.FindOne();
     
    if (results != null)
    {
        DirectoryEntry user = new DirectoryEntry(results.Path, LDAPUser, LDAPPassword);
         return ADUserDetail.GetUser(user);
    }
    return null;

  2. #2
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut.

    Le principe consiste à créer une entrée sur le root DN (ou une autre) de ton annuaire avec tes paramètres d'authentification (je te passe la récupération des paramètres de ton web.config) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DirectoryEntry rootDn = new DirectoryEntry("OU=myRoot,DC=domain,DC=myDC,DC=fr", @"domain\yourUser", "yourUserPassword", AuthenticationTypes.None);
    Et après tu peux faire tes recherches en incluant cette entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Tu prends la signature dont tu as besoin
    DirectorySearcher searcher = new DirectorySearcher(rootDn, ...);
    Dans tous les cas de figure, il faut que tu partes d'une entrée sur laquelle tu as fourni les paramètres d'authentification . Tu peux te créer des méthodes pour ça.

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut
    Je penses que tu peux aussi exécuter ton code en faisant un using impersonate

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/01/2008, 12h20
  2. Exécuter une requête non-query
    Par Piet dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 07/02/2007, 15h01
  3. [ADO.Net][C#/Mysql] Comment exécuter une requête paramétrée?
    Par wremacle dans le forum Accès aux données
    Réponses: 6
    Dernier message: 07/02/2006, 16h55
  4. Comment exécuter une requête rapidement
    Par kardevlop dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/10/2005, 13h45

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