ASP page to authenticate username and password with active directory

Discussion in 'ASP .Net' started by Joeri KUMBRUCK, Aug 30, 2004.

  1. Hello,

    I'm trying to create an ASP page where users can type in a username
    and password, and these credential should be checked with active
    directory. If username and password are correct, the script will
    continue to run otherwise it will stop. Below you will find my code
    I've programmed until now, at this moment I've got one big problem:
    my script stops at the line:
    Set oRootDSE = GetObject("LDAP://RootDSE")
    Why is this GetObject thing giving so much problems and is there a
    way to let it work? Maybe there are already scripts available to do
    the same thing, anyway, all help is welcome. Here comes the code:

    <html>

    <head>
    <meta http-equiv="Content-Language" content="nl-be">
    <meta http-equiv="Content-Type" content="text/html;
    charset=windows-1252">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>username</title>
    </head>

    <body>
    <SCRIPT LANGUAGE=VBScript>

    <!--

    Option Explicit

    Dim bValid
    Dim oRootDSE
    Dim oDSObj
    Dim oAuth
    Dim szNamingContext
    Const ADS_SECURE_AUTHENTICATION=1
    Dim szUserId, szPasswd
    Sub B1_OnClick

    bValid = True

    Call CheckField(document.form1.username.Value, "Please enter a
    value in the field.")
    Call CheckField(document.form1.password.Value, "Please enter a
    value in the field.")
    If bValid Then

    szUserId = document.form1.username.value
    szPasswd = document.form1.password.value


    ' Retrieve the current domain
    Set oRootDSE = GetObject("LDAP://RootDSE")

    szNamingContext = oRootDSE.Get("defaultNamingContext")
    ' Validate against the namespace
    Set oDSObj = GetObject("LDAP:")
    Set oAuth = oDSObj.OpenDSObject("LDAP://" & szNamingContext, _
    szUserId, szPasswd, ADS_SECURE_AUTHENTICATION)

    ' User authenticated if we get here
    bAuthenticateUser = True


    End If

    End Sub

    Sub CheckField(ByVal strFieldValue, ByVal strMessage)

    If strFieldValue = "" Then

    MsgBox strMessage, 0

    bValid = False

    End If

    End Sub

    -->

    </Script>

    <FORM NAME="form1">
    <p>&nbsp;</p>
    <p align="center">username: <input type="text" name="username"
    size="20"></p>
    <p align="center">password: <input type="password" name="password"
    size="20"></p>
    <p>&nbsp;</p>
    <p align="center">&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input
    type="submit" value="Submit"
    name="B1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

    <input type="reset" value="Reset" name="B2"></p>
    </form>



    </body>

    </html>
    Joeri KUMBRUCK, Aug 30, 2004
    #1
    1. Advertising

  2. Joeri KUMBRUCK

    Ben Lovell Guest

    Could you just check for membership to a particular role in your AD domain?
    If so, this would be much simpler to achieve using the
    IPrincipal.IsInRole(...) method.

    --
    Ben
    http://bitarray.co.uk/ben


    "Joeri KUMBRUCK" <> wrote in message
    news:...
    > Hello,
    >
    > I'm trying to create an ASP page where users can type in a username
    > and password, and these credential should be checked with active
    > directory. If username and password are correct, the script will
    > continue to run otherwise it will stop. Below you will find my code
    > I've programmed until now, at this moment I've got one big problem:
    > my script stops at the line:
    > Set oRootDSE = GetObject("LDAP://RootDSE")
    > Why is this GetObject thing giving so much problems and is there a
    > way to let it work? Maybe there are already scripts available to do
    > the same thing, anyway, all help is welcome. Here comes the code:
    >
    > <html>
    >
    > <head>
    > <meta http-equiv="Content-Language" content="nl-be">
    > <meta http-equiv="Content-Type" content="text/html;
    > charset=windows-1252">
    > <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    > <meta name="ProgId" content="FrontPage.Editor.Document">
    > <title>username</title>
    > </head>
    >
    > <body>
    > <SCRIPT LANGUAGE=VBScript>
    >
    > <!--
    >
    > Option Explicit
    >
    > Dim bValid
    > Dim oRootDSE
    > Dim oDSObj
    > Dim oAuth
    > Dim szNamingContext
    > Const ADS_SECURE_AUTHENTICATION=1
    > Dim szUserId, szPasswd
    > Sub B1_OnClick
    >
    > bValid = True
    >
    > Call CheckField(document.form1.username.Value, "Please enter a
    > value in the field.")
    > Call CheckField(document.form1.password.Value, "Please enter a
    > value in the field.")
    > If bValid Then
    >
    > szUserId = document.form1.username.value
    > szPasswd = document.form1.password.value
    >
    >
    > ' Retrieve the current domain
    > Set oRootDSE = GetObject("LDAP://RootDSE")
    >
    > szNamingContext = oRootDSE.Get("defaultNamingContext")
    > ' Validate against the namespace
    > Set oDSObj = GetObject("LDAP:")
    > Set oAuth = oDSObj.OpenDSObject("LDAP://" & szNamingContext, _
    > szUserId, szPasswd, ADS_SECURE_AUTHENTICATION)
    >
    > ' User authenticated if we get here
    > bAuthenticateUser = True
    >
    >
    > End If
    >
    > End Sub
    >
    > Sub CheckField(ByVal strFieldValue, ByVal strMessage)
    >
    > If strFieldValue = "" Then
    >
    > MsgBox strMessage, 0
    >
    > bValid = False
    >
    > End If
    >
    > End Sub
    >
    > -->
    >
    > </Script>
    >
    > <FORM NAME="form1">
    > <p>&nbsp;</p>
    > <p align="center">username: <input type="text" name="username"
    > size="20"></p>
    > <p align="center">password: <input type="password" name="password"
    > size="20"></p>
    > <p>&nbsp;</p>
    > <p align="center">&nbsp;&nbsp;
    > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input
    > type="submit" value="Submit"
    > name="B1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    >
    > <input type="reset" value="Reset" name="B2"></p>
    > </form>
    >
    >
    >
    > </body>
    >
    > </html>
    >
    >
    Ben Lovell, Aug 30, 2004
    #2
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. dave
    Replies:
    5
    Views:
    442
    Donkey Hot
    Jan 12, 2008
  2. Filip De Backer

    Check the username and password with the active directory

    Filip De Backer, Aug 26, 2005, in forum: ASP .Net Security
    Replies:
    3
    Views:
    295
    Filip De Backer
    Aug 29, 2005
  3. Ruggiero, Vince
    Replies:
    0
    Views:
    734
    Ruggiero, Vince
    Dec 14, 2009
  4. Ruggiero, Vince
    Replies:
    0
    Views:
    872
    Ruggiero, Vince
    Dec 14, 2009
  5. Joeri KUMBRUCK
    Replies:
    4
    Views:
    274
    Joeri KUMBRUCK
    Sep 1, 2004
Loading...

Share This Page