Solved

How do I Validate a password entered in an Access 2003 Form with AD

Posted on 2009-05-04
5
307 Views
Last Modified: 2013-11-28
I have an Access 2003 DB Front-end with MS SQL 2005 Back-end.  Some of our shop users login to their PCs using a common "Shop" account.  They also have a "Personal" account for accessing MS Exchange e-mail using OWA so do have a personal AD account.

When these users open Access I wish them to "Login" using their normal AD Username & Password.

Any hints/code how I can achieve this?
0
Comment
Question by:CABHugh
  • 3
  • 2
5 Comments
 
LVL 22

Expert Comment

by:Paka
Comment Utility
Are you shop owners on a common domain or are they accessing the Access/SQL through web app?
0
 

Author Comment

by:CABHugh
Comment Utility
They are connectiong to a RDP session on Terminal Servers in our Data Centre.  They then open the Access 2003 Front-end in the session.  Each Receptionist in the Shop, up to 4, uses a common login for access but I wish Access to record the actual individual using that session.  As I've said, they do all have personal accounts as well so it would be easier for me to make use to that username and password rather than creating new passwords just for the DB which would be hard to maintain going forward.
0
 
LVL 22

Expert Comment

by:Paka
Comment Utility
What kind of PCs do they have?  Would you be able to copy the Access front end to them and have the users log in using their AD accounts?   In this way, you would be able to integrated SQL authentication to enforce the security and auditing...
0
 

Author Comment

by:CABHugh
Comment Utility
Not possible.  They are using TS over a ADSL VPN (Slow).  Everything runs on servers in the same datacentre so we get good local speed there.  I would like to open a login screen when Access opens and ask them to enter their personal AD Username & Password.  Im sure ther must then be a way, in VBA, to authenticate the credentials with AD.  If the authentication failed then the form would Quit the Access DB.

I just need that bit of VBA!!!
0
 

Accepted Solution

by:
CABHugh earned 0 total points
Comment Utility
OK - I've got it working.

I have used the code here to query the AD with the Username & Password enterd in my Login Form.
If AD returns an error then the Credentials supplied are incorrect.  I give them 3 chances at enetering the correct data then Quit the DB.
Private Sub cmdLogin_Click()

On Error GoTo Err_Login

Dim strAuthUser As String

Dim strAuthPassword As String

Dim strAuthOUPath As String

Dim intRemain As Integer

Dim txtRemain As String
 

strAuthUser = Me.txtUser

strAuthPassword = Me.txtPassword

strAuthOUPath = "OU=ZZZ, OU=XXX"

Set oRoot = GetObject("LDAP:")

Set oOU = oRoot.OpenDSObject("LDAP://dc=YYY, dc=COM", "cn=" & strAuthUser & ", " & strAuthOUPath, strAuthPassword, ADS_SECURE_AUTHENTICATION)
 

Exit_Login:

    MsgBox "Login successful - Welcome", vbInformation, "Success..."

    CredentialsOK = True

    DoCmd.Close

    Exit Sub
 

Err_Login:

    If LoginAttempts = 3 Then GoTo Err_Login_Quit

    intRemain = 3 - LoginAttempts

    If intRemain = 1 Then

        txtRemain = " attempt remaining."

    Else

        txtRemain = " attempts remaining."

    End If

    MsgBox "Login Failed." & vbCrLf & vbLf & intRemain & txtRemain, vbCritical, "Failed..."

    Me.txtUser = ""

    Me.txtPassword = ""

    Me.txtUser.SetFocus

    LoginAttempts = LoginAttempts + 1

    Exit Sub
 

Err_Login_Quit:

    MsgBox "Login Failed.  Access denied.  Please contact Helpdesk for assistance.", vbCritical, "Quit..."

    DoCmd.Quit acQuitSaveNone

    Exit Sub

    

End Sub

Open in new window

0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Introduction The Visual Basic for Applications (VBA) language is at the heart of every application that you write. It is your key to taking Access beyond the world of wizards into a world where anything is possible. This article introduces you to…
Restoring deleted objects in Active Directory has been a standard feature in Active Directory for many years, yet some admins may not know what is available.
Using Microsoft Access, learn some simple rules for how to construct tables in a relational database. Split up all multi-value fields into single values: Split up fields that belong to other things into separate tables: Make sure that all record…
In Microsoft Access, learn different ways of passing a string value within a string argument. Also learn what a “Type Mis-match” error is about.

743 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

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now