login  Naam:   Wachtwoord: 
Registreer je!
 Forum

ASP.NET AND Active Directory (LDAP)

Offline dbe123 - 11/08/2010 13:45
Avatar van dbe123Lid Kan iemand me op weg helpen hoe ik in godsnaam vanuit een ASP.NET login pagina authenticatie kan laten doen op een Active Directory server?

Ik slaag er niet in dit werkend te krijgen.
Heel vreemd, want wanneer ik in PHP dit probeer, werkt het perfect (zonder fouten).

In ASP krijg ik steeds de volgende melding:

  1. Server Error in '/WebSite1' Application.
  2. --------------------------------------------------------------------------------
  3.  
  4. Configuration Error
  5. Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
  6.  
  7. Parser Error Message: Unable to establish secure connection with the server
  8.  
  9. Source Error:
  10. Line 57: <add
  11. Line 58: name="MyADMembershipProvider"
  12. Line 59: type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
  13. Line 60: connectionStringName="ADConnectionString"
  14. Line 61: connectionUsername="CN=Dot Project,OU=NON-PERSONAL,OU=USERS,OU=EMRBE,OU=PRODUCTION,DC=ad,DC=eu,DC=rf-group,DC=org"
  15.  
  16.  
  17. Source File: D:\MY DOCUMENTS\Visual Studio 2008\WebSites\WebSite1\web.config Line: 59
  18.  
  19.  
  20. --------------------------------------------------------------------------------
  21. Version Information: Microsoft .NET Framework Version:2.0.50727.3603; ASP.NET Version:2.0.50727.3614


Help??  

3 antwoorden

Gesponsorde links
Offline Maarten - 11/08/2010 15:08 (laatste wijziging 11/08/2010 15:12)
Avatar van Maarten Erelid Toon eens je ADConnectionString? Zoals foutmelding aangeeft, geef je wel een juist wachtwoord mee? (credentials checken )

En probeer eens als user een specifieke user mee te geven voor de authenticatie? (cn=Maarten bijvoorbeeld)
Offline dbe123 - 11/08/2010 21:53
Avatar van dbe123 Lid Hoi Maarten,

Ik heb intussen een ander werkend (!) script gevonden.

Alleen...
Dit is in VB opgesteld.

Ik slaag er niet in om de code om te zetten naar C#.

Enige hulp zou welkom zijn.
Onderstaande functie krijg ik niet geconverteerd:

  1. function AuthenticateUser(UserName, Password, Domain)
  2. dim strUser
  3. ' assume failure
  4. AuthenticateUser = false
  5.  
  6. strUser = UserName
  7. strPassword = Password
  8.  
  9. strQuery = "SELECT cn FROM 'LDAP://" & Domain & "' WHERE objectClass='*' "
  10. set oConn = server.CreateObject("ADODB.Connection")
  11. oConn.Provider = "ADsDSOOBJECT"
  12. oConn.Properties("User ID") = strUser
  13. oConn.Properties("Password") = strPassword
  14. oConn.Properties("Encrypt Password") = true
  15. oConn.open "DS Query", strUser, strPassword
  16.  
  17. set cmd = server.CreateObject("ADODB.Command")
  18. set cmd.ActiveConnection = oConn
  19. cmd.CommandText = strQuery
  20. on error resume next
  21. set oRS = cmd.Execute
  22. if oRS.bof or oRS.eof then
  23. AuthenticateUser = false
  24. else
  25. AuthenticateUser = true
  26. end if
  27. set oRS = nothing
  28. set oConn = nothing
  29.  
  30. end function
Offline lemoinet - 11/08/2010 22:50
Avatar van lemoinet PHP gevorderde zal ongeveer zoiets zijn. ik heb het wel niet getest. het kan dus zijn dat het niet werkt, maar dan heb je al een idee.

vergeet ADODB niet bij je references te zettten

  1. public bool AuthenticateUser(string userName, string password, string domain)
  2. {
  3. bool authenticateUser = false;
  4.  
  5. string strQuery = "SELECT cn FROM 'LDAP://" + domain + "' WHERE objectClass='*' ";
  6.  
  7. ADODB.Connection connection = new ADODB.Connection();
  8. connection.Open("Provider=ADsDSOOBJECT", userName, password, 0);
  9.  
  10.  
  11. ADODB.Command cmd = new ADODB.Command { ActiveConnection = connection, CommandText = strQuery };
  12. object objRecAff;
  13. object parameters = cmd.Parameters;
  14. ADODB.Recordset oRS = cmd.Execute(out objRecAff, ref parameters, 0 );
  15. if (!oRS.BOF || !oRS.EOF)
  16. {
  17. authenticateUser = true;
  18. }
  19.  
  20. oRS.Close();
  21. connection.Close();
  22.  
  23. return authenticateUser;
  24. }
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.22s