2012-03-28 5 views
0

ich auf einer C# und ASP.Net-Anwendung arbeite, das verwendet Formularauthentifizierung, die ich hier gefunden ... http://msdn.microsoft.com/en-us/library/ms180890(v=vs.90).aspxWie E-Mails von LDAP in Web-Anwendung ziehen

Es funktioniert gut, aber jetzt würde Ich mag an geht alittle weiter und zieht auch die E-Mail-Adresse aus dem Mail-Feld in LDAP und eine Pipe an einen Text mit dem Rest der

lblName.Text = "Hello " + Context.User.Identity.Name + "."; 
    lblAuthType.Text = "You were authenticated using " 
        + Context.User.Identity.AuthenticationType + "."; 

ich gesucht und gelesen Thesen Links lo oking für eine Antwort ...

How to get the current user's Active Directory details in C#

How to use email as httpcontext.User.Identity.name

http://www.codekeep.net/snippets/402e4677-f8d0-419c-b656-b3c28e740296.aspx

von dem, was ich sagen kann, ich Code an die LdapAuthentication.cs wie eine andere Directory Abfrage hinzufügen müssen, aber ich muss eine völlig neue Suche machen oder kann ich es einfach zu der Abfrage hinzufügen, die es macht, wenn es den Benutzernamen sucht ?? Wie

  DirectorySearcher search = new DirectorySearcher(entry); 

      search.Filter = "(SAMAccountName=" + username + ")"; 
      search.PropertiesToLoad.Add("cn"); 
      search.PropertiesToLoad.Add("mail"); // e-mail address 
      SearchResult result = search.FindOne(); 

      if (null == result) 
      { 
       return false; 
      } 

..I'm so neu in diesem und ich versuche so hart, aber ich kann das nicht .. bekommen jede mögliche Hilfe?

Antwort

0

Sie können E-Mail zu PropertiesToLoad hinzufügen, und Sie können das Ergebnis dann abrufen, indem Sie auf (String) result.Properties ["mail"] [0] zugreifen. Eigenschaften ist ein 2-D-Array, wobei der erste Vektor der Attributname und der zweite der Fall ist, wenn das Attribut multivariabel ist.