Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

VBScript to validate a password with Active Directory

Posted on 2010-11-12
6
2,151 Views
Last Modified: 2012-05-10
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,
0
Comment
Question by:jamesbcox1980
  • 3
  • 3
6 Comments
 
LVL 65

Expert Comment

by:RobSampson
ID: 34133647
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
 
LVL 4

Author Comment

by:jamesbcox1980
ID: 34136173
Is there no way to simply verify a password with AD?
0
 
LVL 65

Accepted Solution

by:
RobSampson earned 500 total points
ID: 34141448
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
Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

 
LVL 4

Author Comment

by:jamesbcox1980
ID: 34176574
Sorry I've been out of town. I'll answer a soon as I get back and have a chance to try it.
0
 
LVL 4

Author Closing Comment

by:jamesbcox1980
ID: 34192349
Thanks, worked like a charm
0
 
LVL 65

Expert Comment

by:RobSampson
ID: 34192897
Great.  Thanks for the grade.

Regards,

Rob.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
I was asked about the differences between classic ASP and ASP.NET, so let me put them down here, for reference: Let's make the introductions... Classic ASP was launched by Microsoft in 1998 and dynamically generate web pages upon user interact…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question