Toon posts:

[asp] integratie met win(NT) authenticatie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Is het mogelijk om in asp de huidige ingelogde gebruikers-gegevens op te vragen? Zodat je niet dubbele gegevens hoeft bij te houden, maar gebruik kan maken van de gebruikers-authenticatie die al in windows ingebakken zit?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

[topic=330895/1/25]

en je moet ff goed zoeken
ik kan me herinneren dat er laatst nog eens een topic over is geweest
kan het alleen zo 1-2-3 niet vinden voor je

Doet iets met Cloud (MS/IBM)


  • ParaNoiMia
  • Registratie: Mei 2000
  • Laatst online: 13-09 20:19
En als je meer gegevens nodig hebt van een user (bv in welke usergroups hij/zij zit), kijk dan eens naar ADSI.

http://www.vbxml.com/conference/wrox/1999_dc/text/adamadsi.asp

Verwijderd

Topicstarter
we gebruiken hier alleen geen active directory :(

en request.servervariables("logon_user") geeft helaas niks terug :?

  • ParaNoiMia
  • Registratie: Mei 2000
  • Laatst online: 13-09 20:19
Logt die gebruiker met NT authenticatie wel in dan ?

Wat voor gegevens heb je trouwens nodig ?

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op maandag 03 december 2001 11:21 schreef Mas*Mind het volgende:
we gebruiken hier alleen geen active directory :(
ADSI werkt anders dan de naam misschien doet vermoeden ook gewoon met NT4 domeinen, NDS, enz enz. :)

Verwijderd

Topicstarter
oei :)

Heb je helemaal gelijk in! Toppie, het enige probleem is dat de snelheid nou niet helemaal geweldig is...

Verwijderd

Topicstarter
het is me nog niet helemaal duidelijk hoe ik bijv kan checken of een combinatie gebruikersnaam + wachtwoord + domein een geldige combinatie is....

Iemand die hier een lichtje op kan schijnen?

  • Stewie!
  • Registratie: September 2001
  • Laatst online: 23:05

Stewie!

Keen must die!

Is dit niet mogelijk in PHP + Apache op Linux?? Dat zou echt goed uitkomen voor veel mensen!


Strava: https://www.strava.com/athletes/149347154


Verwijderd

Als je normaal gesproken een ASP pagina opvraagd, gebeurd dat anoniem. Als je wilt dwingen dat iemand in moet loggen, kun je dat bij de security van IIS Console (of hoe heet dat ding) instellen.

Eigenschappen van je server (of application) en dan ergens Security, en schakel Anonymous uit. Als je meer moet weten, geef een gil. Hier heb ik geen IIS, op het werk wel.

Verwijderd

Topicstarter
nee, daar heb ik niks aan... Het gaat er niet alleen om dat ze moeten inloggen, maar ook dat ik ze moet herkennen. En dat ik gegevens uit het winnt domein kan gebruiken om zo niet een dubbele gebruikersdatabase bij te houden...

  • ParaNoiMia
  • Registratie: Mei 2000
  • Laatst online: 13-09 20:19
Zitten ze niet allemaal in een Exchange adressenboek ?

Ik heb op een cd denk ik nog wel wat scripts staan met functies om dat te benaderen vanuit ASP

Verwijderd

Topicstarter
ik weet niet of het nuttig is, maar kan je voor de zekerheid toch mij een mailtje doen met die scriptjes?

[mail]ihehenkamp@idion.com[/mail]

Verwijderd

Op dinsdag 04 december 2001 08:53 schreef ParaNoiMia het volgende:
Zitten ze niet allemaal in een Exchange adressenboek ?

Ik heb op een cd denk ik nog wel wat scripts staan met functies om dat te benaderen vanuit ASP
Ow..! Zou ik die scriptjes misschien ook eens mogen inzien ? :P
Had nl. pas geleden ook ee dergelijk probleem (zie de link in dit topic ergens boevenaan :) )

  • ParaNoiMia
  • Registratie: Mei 2000
  • Laatst online: 13-09 20:19
Jawel, ik zal ze vanavond wel even mailen (zit nu bij een klant) naar de liefhebbers

Verwijderd

Topicstarter
Ik heb voorlopig dit stukje code, dat goed schijnt te werken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
dim username, password, winNTAuthDomain, myUser, domain

username = Request.Form("username")
password = Request.Form("password")
domain = Request.Form("domain")

On Error Resume Next

Set winNTAuthDomain = GetObject("WinNT:")

set myUser = winNTAuthDomain.OpenDSObject("WinNT://" &amp; domain, username, password, ADS_SECURE_AUTHENTICATION)
if(typename(myUser) = "Object") then
    Response.write("Je bent ingelogd")
else
    Response.write("Geen geldig account")
end if
?>

Ik vind deze, if(typename(myUser) = "Object"), check alleen niet zo mooi, maar heb tot nu toe nog geen betere kunnen ontdekken en om een of andere reden wordt ik ook ingelogd als ik niks als wachtwoord en gebruikersnaam invul (waarom?)

Daarnaast vraag ik me af of er ook een manier is om een lijst met domeinen op te vragen.

Verwijderd

Topicstarter
Voor de geinteresseerde, onderstaande code werkt perfect:

winntloginForm.asp
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<%@ Language=VBScript %>
<%option explicit%>
<html>
  <head><title></title></head>
  <body>
    <form method="post" action="winntlogin.asp">
    <table>
      <tr>
        <td>Username</td>
        <td><input type="text" name="username"></td>
      </tr>
      <tr>
        <td>Password</td>
        <td><input type="password" name="password"></td>
      </tr>
      <tr>
        <td>Domain</td>
        <td><select name="domain">
<%
dim cont, obj, domainName
set cont = getObject("WinNT:")

for each obj in cont
    if(obj.class = "Domain") then
        domainName = obj.name
        response.write("<option value=""" & domainName & """>" & domainName & "</option>")
        selected = ""
    end if
next
%>
</select</td>
      </tr>
      <tr>
        <td colspan="2" align="center"><input type="submit" name="submit" value="Login"></td>
      </tr>
    </table>
    </form>
  </body>
</html>

winntlogin.asp
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ Language=VBScript %>
<%
dim username, password, winNTAuthDomain, myNTUser, domain

username = request.form("username")
password = request.form("password")
domain = request.form("domain")

on error resume next

set winNTAuthDomain = getObject("WinNT:")

set myNTUser = winNTAuthDomain.OpenDSObject("WinNT://" & domain & "/" & username, username, password, ADS_SECURE_AUTHENTICATION)
if(err.number = 0) then
    response.write("You are logged in " & myNTUser.FullName)
else
    response.write("Invalid username/password combination")
end if
%>

Bovenstaande problemen zijn hiermee opgelost.

Verwijderd

Topicstarter
Nu alleen nog zien uit te vogelen hoe een Exchange Adressenboek aan te spreken zonder Active Directory (wil nu nog niet helemaal lukken nl)
Pagina: 1