VBScript to validate a password with Active Directory

I have an internal website that specified users will be able to work in.  I also have an SQL server that stores the usernames in a table of the people that are authorized to use the site.

I want the users to be able to use their Windows password, which is controlled by Active Directory on our domain controller (server2.mydomain.com).

Here's how I need this to go:

1.  User enters a username and password.
2.  Username is checked against the SQL server to ensure the user is authorized to use the site.
3.  Username and Password are validated against Active Directory 2003 to ensure sure they match the user's actual username and password.  If so, the script will return True
4.  If the validation script returns true, a session is created which will last for one hour and extended each time the user accesses a page in the website.
5.  If the session expires, the user will be prompted to login again.

I have no idea how to simply check whether the user entered the correct password.  Can someone help me with the simple script necessary for step 3?

Thanks,
LVL 4
jamesbcox1980Asked:
Who is Participating?
 
RobSampsonCommented:
Well you can try this function in your code, and see how you go.

Regards,

Rob.
strUser = txtUser.Value
strPW = txtPW.Value
boolAuthenticated = AuthenticateUser(strUser, strPW)
If boolAuthenticated = True Then
	' Check against SQL database
Else
	' User was not authenticated
End If

Function AuthenticateUser(ByVal strUser, ByVal strPW)
	Const ADS_SECURE_AUTHENTICATION = &H1
	Const ADS_SERVER_BIND = &H200

	strPath = "LDAP://RootDSE"

	Set LDAP = GetObject(strPath)
	Set strAuth = LDAP.OpenDSObject(strPath, strUser, strPW, ADS_SECURE_AUTHENTICATION Or ADS_SERVER_BIND)
	If Err.Number <> 0 Then
		boolAuth = False
	Else
		boolAuth = True
	End If
	AuthenticateUser = boolAuth
End Function

Open in new window

0
 
RobSampsonCommented:
Hi, for this problem, it sounds like you would be better off using Windows Authentication for you ASP pages, which would authenticate any AD user, and *then* you could check if that user was in your SQL database.  If the user was listed, create the session, if not, log them off.

Regards,

Rob.
0
 
jamesbcox1980Author Commented:
Is there no way to simply verify a password with AD?
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
jamesbcox1980Author Commented:
Sorry I've been out of town. I'll answer a soon as I get back and have a chance to try it.
0
 
jamesbcox1980Author Commented:
Thanks, worked like a charm
0
 
RobSampsonCommented:
Great.  Thanks for the grade.

Regards,

Rob.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.