2010-05-13 4 views
1

J'ai un code en asp.net (aimablement donné par quelqu'un d'autre) pour interroger AD pour obtenir le nom d'utilisateur et le courrier électronique, etc.Comment interroger AD pour obtenir email Nom de lan id

using System.DirectoryServices; 
using System.DirectoryServices.ActiveDirectory; 
using ActiveDs; 

     DirectorySearcher search = new DirectorySearcher(new DirectoryEntry(), string.Format("(samaccountname={0})", id)); 
     if (search == null) 
      return id; 
     if (search.FindOne() == null) 
      return id; 
     DirectoryEntry usr = search.FindOne().GetDirectoryEntry(); 
     IADsUser oUsr = (IADsUser)usr.NativeObject; 
     return string.Format("{0} {1}", usr.Properties["givenname"].Value, usr.Properties["sn"].Value); 

Cependant, cela nécessite usurpation d'identité avec un identifiant qui doit être changé toutes les 2 semaines et ensuite mis à jour dans le web.config qui est souvent oublié

Existe-t-il un code de non-usurpation d'identité pour obtenir le même résultat?

MISE À JOUR - c'est un outil de configuration et il recherche nom, id e-mail, etc. J'aime le service a/c idée

Q - Comment est-il possible d'exécuter (usurper l'identité), juste le code AD avec un "service" a/c? des échantillons/code?

comment voulez-vous impersona

Répondre

0

Nous demandons généralement à IT de nous donner un compte de service de domaine. Vous devez toujours emprunter l'identité, mais avec un compte de service, le mot de passe n'aura pas à être changé toutes les deux semaines et vous recevrez des droits spécifiques pour la fonction particulière dont vous avez besoin.

0

Je ne pense pas, parce que vous devez lier au domaine avec des informations d'identification valides afin de lire à partir du répertoire actif.

Pensez au nom d'utilisateur/mot de passe dans le cadre d'une chaîne de connexion à une base de données. Je demanderais un nom d'utilisateur et un mot de passe complexes à votre administrateur de domaine et demanderais qu'ils lui accordent des autorisations de connexion limitées et que le mot de passe n'expire jamais. Puis stockez et utilisez ceux dans votre fichier Web.config.

1
  1. Pour votre usage particulier, un ServiceAccount doit être ajouté à AD;
  2. Si votre application ASP.NET est destinée à un réseau local de votre organisation, vous pouvez simplement oublier de fournir un nom d'utilisateur et un mot de passe et ne fournir que le domaine racine. De cette façon, Active Directory recherche l'utilisateur authentifié Windows au lieu d'utiliser l'impersonnation (ceci suppose que l'utilisateur accédant à votre application a le droit d'effectuer les tâches fournies par votre application).

Qu'est-ce que votre application doit faire exactement? Si votre application gère les comptes d'utilisateurs, les groupes et les unités d'organisation, vous devez utiliser l'impersonnation uniquement si l'utilisateur effectuant ces tâches via l'application n'a aucun droit de gérer l'AD avec son compte d'utilisateur habituel. Cela ne devrait pas arriver. Donc, l'événement pour cela, si l'utilisateur a les droits appropriés, en omettant vos informations d'identification permettra uniquement à AD de rechercher l'utilisateur actuellement connecté.

+0

a mis à jour le Ques – Kumar

Questions connexes