|
Categorieën >
ASP
ASP.NET & Active Directory (LDAP)
|
|
|
offline
|
Lid
|
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:
Server Error in '/WebSite1' Application.
--------------------------------------------------------------------------------
Configuration Error
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.
Parser Error Message: Unable to establish secure connection with the server
Source Error:
Line 57: <add
Line 58: name="MyADMembershipProvider"
Line 59: type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Line 60: connectionStringName="ADConnectionString"
Line 61: connectionUsername="CN=Dot Project,OU=NON-PERSONAL,OU=USERS,OU=EMRBE,OU=PRODUCTION,DC=ad,DC=eu,DC=rf-group,DC=org"
Source File: D:\MY DOCUMENTS\Visual Studio 2008\WebSites\WebSite1\web.config Line: 59
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.3603; ASP.NET Version:2.0.50727.3614
Server Error in '/WebSite1' Application. -------------------------------------------------------------------------------- Configuration Error 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. Parser Error Message: Unable to establish secure connection with the server Source Error: Line 57: <add Line 58: name="MyADMembershipProvider" Line 59: type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Line 60: connectionStringName="ADConnectionString" Line 61: connectionUsername="CN=Dot Project,OU=NON-PERSONAL,OU=USERS,OU=EMRBE,OU=PRODUCTION,DC=ad,DC=eu,DC=rf-group,DC=org" Source File: D:\MY DOCUMENTS\Visual Studio 2008\WebSites\WebSite1\web.config Line: 59 -------------------------------------------------------------------------------- Version Information: Microsoft .NET Framework Version:2.0.50727.3603; ASP.NET Version:2.0.50727.3614
Help?? |
3 antwoorden
Maarten – 11/08/2010 15:08 (Laatst gewijzigd op 11/08/2010 15:12)
|
|
offline
|
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
|
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:
function AuthenticateUser(UserName, Password, Domain)
dim strUser
' assume failure
AuthenticateUser = false
strUser = UserName
strPassword = Password
strQuery = "SELECT cn FROM 'LDAP://" & Domain & "' WHERE objectClass='*' "
set oConn = server.CreateObject("ADODB.Connection")
oConn.Provider = "ADsDSOOBJECT"
oConn.Properties("User ID") = strUser
oConn.Properties("Password") = strPassword
oConn.Properties("Encrypt Password") = true
oConn.open "DS Query", strUser, strPassword
set cmd = server.CreateObject("ADODB.Command")
set cmd.ActiveConnection = oConn
cmd.CommandText = strQuery
on error resume next
set oRS = cmd.Execute
if oRS.bof or oRS.eof then
AuthenticateUser = false
else
AuthenticateUser = true
end if
set oRS = nothing
set oConn = nothing
end function
function AuthenticateUser(UserName, Password, Domain) dim strUser ' assume failure AuthenticateUser = false strUser = UserName strPassword = Password strQuery = "SELECT cn FROM 'LDAP://" & Domain & "' WHERE objectClass='*' " set oConn = server.CreateObject("ADODB.Connection") oConn.Provider = "ADsDSOOBJECT" oConn.Properties("User ID") = strUser oConn.Properties("Password") = strPassword oConn.Properties("Encrypt Password") = true oConn.open "DS Query", strUser, strPassword set cmd = server.CreateObject("ADODB.Command") set cmd.ActiveConnection = oConn cmd.CommandText = strQuery on error resume next set oRS = cmd.Execute if oRS.bof or oRS.eof then AuthenticateUser = false else AuthenticateUser = true end if set oRS = nothing set oConn = nothing end function
|
|
|
|
offline
|
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
public bool AuthenticateUser(string userName, string password, string domain)
{
bool authenticateUser = false;
string strQuery = "SELECT cn FROM 'LDAP://" + domain + "' WHERE objectClass='*' ";
ADODB.Connection connection = new ADODB.Connection();
connection.Open("Provider=ADsDSOOBJECT", userName, password, 0);
ADODB.Command cmd = new ADODB.Command { ActiveConnection = connection, CommandText = strQuery };
object objRecAff;
object parameters = cmd.Parameters;
ADODB.Recordset oRS = cmd.Execute(out objRecAff, ref parameters, 0 );
if (!oRS.BOF || !oRS.EOF)
{
authenticateUser = true;
}
oRS.Close();
connection.Close();
return authenticateUser;
}
public bool AuthenticateUser(string userName, string password, string domain) { bool authenticateUser = false; string strQuery = "SELECT cn FROM 'LDAP://" + domain + "' WHERE objectClass='*' "; ADODB. Connection connection = new ADODB. Connection(); connection.Open("Provider=ADsDSOOBJECT", userName, password, 0); ADODB. Command cmd = new ADODB. Command { ActiveConnection = connection, CommandText = strQuery }; object objRecAff; object parameters = cmd.Parameters; ADODB.Recordset oRS = cmd.Execute(out objRecAff, ref parameters, 0 ); if (!oRS.BOF || !oRS.EOF) { authenticateUser = true; } oRS.Close(); connection.Close(); return authenticateUser; }
|
Dit onderwerp is gesloten.
|
|
|