ASP LDAP Query working on localhost but not webserver

M

MrHelpMe

Sorry everyone,

NOTE: I have posted this question to another site but unfortunately,
am not getting the answers I need only because those helping haven't
worked with ASP.

I am in desperate need of a fix. I am using classic asp and making a
connection to LDAP server using SQL code under IIS 5 on my localhost
and it works great. I have a form and form fields that pull from
active directory. Now, once I get the web team to deploy these files
to the webserver where all users will be able to run this app.(this
server is using IIS 6), my form fields show up blank. For the life of
me I cannot see what is wrong or different except the IIS version.
Also, I have gotten the IIS logs and they don't tell me anything.

Code:
UserSelect= instr(Session("User"),"\")
user = Mid(Session("User"), UserSelect + 1, len(Session("User"))-
UserSelect)

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
Set objCommand1 =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

'objCommand.Properties("Page Size") = 1

'objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

objCommand.CommandText = _

"SELECT GivenName, mail, telephoneNumber FROM 'LDAP Server(hidden for
security)' WHERE sAMAccountName ='" & user  & "'"

Set objRecordSet = objCommand.Execute

Any ideas why it works locally but not on the webserver? Thanks.
 
M

MrHelpMe

Sorry everyone,

NOTE: I have posted this question to another site but unfortunately,
am not getting the answers I need only because those helping haven't
worked with ASP.

I am in desperate need of a fix. I am using classic asp and making a
connection to LDAP server using SQL code under IIS 5 on my localhost
and it works great. I have a form and form fields that pull from
active directory. Now, once I get the web team to deploy these files
to the webserver where all users will be able to run this app.(this
server is using IIS 6), my form fields show up blank. For the life of
me I cannot see what is wrong or different except the IIS version.
Also, I have gotten the IIS logs and they don't tell me anything.

Code:
UserSelect= instr(Session("User"),"\")
user = Mid(Session("User"), UserSelect + 1, len(Session("User"))-
UserSelect)

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
Set objCommand1 =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

'objCommand.Properties("Page Size") = 1

'objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

objCommand.CommandText = _

"SELECT GivenName, mail, telephoneNumber FROM 'LDAP Server(hidden for
security)' WHERE sAMAccountName ='" & user  & "'"

Set objRecordSet = objCommand.Execute

Any ideas why it works locally but not on the webserver? Thanks.

Sorry I forgot to mention my iis security settings are Integrated
windows authentication. That's it.
 
M

Mark J. McGinty

MrHelpMe said:
Sorry everyone,

NOTE: I have posted this question to another site but unfortunately,
am not getting the answers I need only because those helping haven't
worked with ASP.

I am in desperate need of a fix. I am using classic asp and making a
connection to LDAP server using SQL code under IIS 5 on my localhost
and it works great. I have a form and form fields that pull from
active directory. Now, once I get the web team to deploy these files
to the webserver where all users will be able to run this app.(this
server is using IIS 6), my form fields show up blank. For the life of
me I cannot see what is wrong or different except the IIS version.
Also, I have gotten the IIS logs and they don't tell me anything.

Code:
UserSelect= instr(Session("User"),"\")
user = Mid(Session("User"), UserSelect + 1, len(Session("User"))-
UserSelect)

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
Set objCommand1 =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

'objCommand.Properties("Page Size") = 1

'objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

objCommand.CommandText = _

"SELECT GivenName, mail, telephoneNumber FROM 'LDAP Server(hidden for
security)' WHERE sAMAccountName ='" & user  & "'"

Set objRecordSet = objCommand.Execute

Any ideas why it works locally but not on the webserver? Thanks.

Sorry I forgot to mention my iis security settings are Integrated
windows authentication. That's it.

What are the security settings on the live web server. If it's integrated
security, have you tried it with your login, and is the login in the same
domain as your local system? If it's anonymous, the anonymous user context
will need sufficient privileges to access LDAP.

-Mark
 
M

MrHelpMe

Sorry everyone,
NOTE: I have posted this question to another site but unfortunately,
am not getting the answers I need only because those helping haven't
worked with ASP.
I am in desperate need of a fix. I am using classic asp and making a
connection to LDAP server using SQL code under IIS 5 on my localhost
and it works great. I have a form and form fields that pull from
active directory. Now, once I get the web team to deploy these files
to the webserver where all users will be able to run this app.(this
server is using IIS 6), my form fields show up blank. For the life of
me I cannot see what is wrong or different except the IIS version.
Also, I have gotten the IIS logs and they don't tell me anything.
Code:
UserSelect= instr(Session("User"),"\")
user = Mid(Session("User"), UserSelect + 1, len(Session("User"))-
UserSelect) 
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
Set objCommand1 =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection 
'objCommand.Properties("Page Size") = 1 
'objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
objCommand.CommandText = _ 
"SELECT GivenName, mail, telephoneNumber FROM 'LDAP Server(hidden for
security)' WHERE sAMAccountName ='" & user  & "'" 
Set objRecordSet = objCommand.Execute
Any ideas why it works locally but not on the webserver? Thanks.
Sorry I forgot to mention my iis security settings are Integrated
windows authentication. That's it.

What are the security settings on the live web server. If it's integrated
security, have you tried it with your login, and is the login in the same
domain as your local system? If it's anonymous, the anonymous user context
will need sufficient privileges to access LDAP.

-Mark- Hide quoted text -

- Show quoted text -

Hi Mark,
The security settings are integrated security. Not sure what you mean
have I tried it with my login? The code is taking my windows NT login
and passing that to the LDAP query for retrieval. So I think the
answer to that is yes but no values are showing up. Yes the login is
in the same domain as my local system. Any other ideas? Thanx for
you help.
 
M

Mark J. McGinty

MrHelpMe said:
Sorry everyone,
NOTE: I have posted this question to another site but unfortunately,
am not getting the answers I need only because those helping haven't
worked with ASP.
I am in desperate need of a fix. I am using classic asp and making a
connection to LDAP server using SQL code under IIS 5 on my localhost
and it works great. I have a form and form fields that pull from
active directory. Now, once I get the web team to deploy these files
to the webserver where all users will be able to run this app.(this
server is using IIS 6), my form fields show up blank. For the life of
me I cannot see what is wrong or different except the IIS version.
Also, I have gotten the IIS logs and they don't tell me anything.
Code:
UserSelect= instr(Session("User"),"\")
user = Mid(Session("User"), UserSelect + 1, len(Session("User"))-
UserSelect)[/QUOTE]
[QUOTE]
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
Set objCommand1 =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection[/QUOTE]
[QUOTE]
'objCommand.Properties("Page Size") = 1[/QUOTE]
[QUOTE]
'objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE[/QUOTE]
[QUOTE]
objCommand.CommandText = _[/QUOTE]
[QUOTE]
"SELECT GivenName, mail, telephoneNumber FROM 'LDAP Server(hidden for
security)' WHERE sAMAccountName ='" & user  & "'"[/QUOTE]
[QUOTE]
Set objRecordSet = objCommand.Execute
Any ideas why it works locally but not on the webserver? Thanks.
Sorry I forgot to mention my iis security settings are Integrated
windows authentication. That's it.

What are the security settings on the live web server. If it's
integrated
security, have you tried it with your login, and is the login in the same
domain as your local system? If it's anonymous, the anonymous user
context
will need sufficient privileges to access LDAP.

-Mark- Hide quoted text -

- Show quoted text -

Hi Mark,
The security settings are integrated security. Not sure what you mean
have I tried it with my login? The code is taking my windows NT login
and passing that to the LDAP query for retrieval.

Right... maybe your system is flagged as trusted for delegation and the web
server is not?
So I think the
answer to that is yes but no values are showing up. Yes the login is
in the same domain as my local system. Any other ideas? Thanx for
you help.

You don't show the code where you output the values of the recordset fields,
are you sure the recordset is being opened? (Check its state property.)
Have you examined the contents of the Connection.Errors collection? If you
have errors disabled, comment the 'on error resume next' line to find out
exactly where [and hopefully even why] the error is occurring.

I suspect the issue has something to do with security, so if it was my
project (barring any relevant info from error messages to the contrary) that
is where I would look.

-Mark
 
M

MrHelpMe

Sorry everyone,
NOTE: I have posted this question to another site but unfortunately,
am not getting the answers I need only because those helping haven't
worked with ASP.
I am in desperate need of a fix. I am using classic asp and making a
connection to LDAP server using SQL code under IIS 5 on my localhost
and it works great. I have a form and form fields that pull from
active directory. Now, once I get the web team to deploy these files
to the webserver where all users will be able to run this app.(this
server is using IIS 6), my form fields show up blank. For the life of
me I cannot see what is wrong or different except the IIS version.
Also, I have gotten the IIS logs and they don't tell me anything.
Code:
UserSelect= instr(Session("User"),"\")
user = Mid(Session("User"), UserSelect + 1, len(Session("User"))-
UserSelect) 
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
Set objCommand1 =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection 
'objCommand.Properties("Page Size") = 1 
'objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
objCommand.CommandText = _ 
"SELECT GivenName, mail, telephoneNumber FROM 'LDAP Server(hidden for
security)' WHERE sAMAccountName ='" & user  & "'" 
Set objRecordSet = objCommand.Execute
Any ideas why it works locally but not on the webserver? Thanks.
Sorry I forgot to mention my iis security settings are Integrated
windows authentication. That's it.
What are the security settings on the live web server. If it's
integrated
security, have you tried it with your login, and is the login in the same
domain as your local system? If it's anonymous, the anonymous user
context
will need sufficient privileges to access LDAP.
-Mark- Hide quoted text -
- Show quoted text -
Hi Mark,
The security settings are integrated security. Not sure what you mean
have I tried it with my login? The code is taking my windows NT login
and passing that to the LDAP query for retrieval.

Right... maybe your system is flagged as trusted for delegation and the web
server is not?
So I think the
answer to that is yes but no values are showing up. Yes the login is
in the same domain as my local system. Any other ideas? Thanx for
you help.

You don't show the code where you output the values of the recordset fields,
are you sure the recordset is being opened? (Check its state property.)
Have you examined the contents of the Connection.Errors collection? If you
have errors disabled, comment the 'on error resume next' line to find out
exactly where [and hopefully even why] the error is occurring.

I suspect the issue has something to do with security, so if it was my
project (barring any relevant info from error messages to the contrary) that
is where I would look.

-Mark- Hide quoted text -

- Show quoted text -

O.k Mark,
I think you are on to something. I forgot I had on error resume.....:
( so I removed the code. Now hopefully you could explain what is
wrong as I am getting the error
Microsoft VBScript runtime error '800a000d'

Type mismatch Line 276.

Line 276 is as follows....exactly what you wanted to see.
Code:
<TD width="392"><INPUT type="text" name="RequestorFirstName" value="<
%=Trim(objRecordSet("GivenName"))%>"></TD>

Can you see anything wrong because I can't? Also, why would it work
on my localhost without error but not here? Thanks again for you
help.
 
D

Dave Anderson

[Please trim when responding]

MrHelpMe said:
Microsoft VBScript runtime error '800a000d'

Type mismatch Line 276.

Line 276 is as follows....exactly what you wanted to see.
Code:
<TD width="392"><INPUT type="text" name="RequestorFirstName" value="<
%=Trim(objRecordSet("GivenName"))%>"></TD>

The type mismatch probably comes from VBScript's Trim function, which
requires a string. You used a notational shortcut for
objRecordSet.Fields("GivenName").Value, which VBScript allows you to do
because it supports default properties on ADODB.Recordset objects.

Normally, this works great, but what if the recordset is empty, as I suspect
yours is? What happens if you pass an object or a Null value to a function
that requires a string?

http://msdn2.microsoft.com/en-us/library/c623wz83.aspx

Can you see anything wrong because I can't? Also, why would it work on
my localhost without error but not here?

Simple. If the recordset is empty, it will behave differently. Try disabling
Integrated Windows Authentication on localhost, and you will probably see a
similar error. I believe your AD query is not returning any records.
 
M

MrHelpMe

Hi Dave,

"Normally, this works great, but what if the recordset is empty, as I
suspect
yours is? What happens if you pass an object or a Null value to a
function
that requires a string?"

Actually, my recordset is not empty. It is taking the user session
and using that to filter the AD Query and my name definitely comes up
in the user session as I response.write the session. I will have a
closer look at the code though.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,756
Messages
2,569,533
Members
45,007
Latest member
OrderFitnessKetoCapsules

Latest Threads

Top