[ASP] Ophalen welke User is ingelogd in het Windows domain

Pagina: 1
Acties:
  • 217 views sinds 30-01-2008
  • Reageer

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 15:23
Wij moeten een web applicatie bouwen in ASP.
In de applicatie moet een autorisatie komen als volgt:

* Een user logt in op zijn Windows machine onder een bedrijfs domein.
* Een intranet site word opgestart
* Binnen deze intranet site moet via ASP worden opgehaald hoe de user (met welk username & password) is ingelogd op de Windows client.
* Deze moet vergeleken worden met alle domain users.

Bestaat deze user in het domein dan is de user geautoriseerd om het intranet te gebruiken.
Verdere autorisatielagen komen later wel van toepassing. die komen wellicht uit de Database van de web applicatie zelf.

Je hebt natuurlijk Request.ServerVariables("LOGON_USER"), maar daar kan je niet uit welke user er is ingelogd in het windows systeem, toch?

Is bovenstaande wel mogelijk, en hoe??

_/-\o_

Verwijderd

Nee. Je kunt met .ASP niet zien welk password een user gebruikt heeft om in te loggen (godzijdank).

Imo zit je veel te ingewikkeld te doen. In plaats van dit in code op te lossen, kun je dit veel beter op je webserver oplossen. Zet alleen windows-integrated authentication aan, en dan kunnen alleen geauthenticeerde gebruikers gebruik maken van je intranet.

De username kun je wel achterhalen, hoe dat hangt een beejte af van de taal welke je gebruikt (javascript, vbscript, enz).

Zoeken bij google geeft je het antwoord pasklaar..

hier bv. een voorbeeldje:
http://groups.google.nl/g...2740%40tkmsftngp13&rnum=4

[ Voor 14% gewijzigd door Verwijderd op 22-04-2004 14:08 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:18

TeeDee

CQB 241

Via het LDAP of ADSI object kan je wel het e.e.a. ophalen.

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

TeeDee schreef op 22 april 2004 @ 14:08:
Via het LDAP of ADSI object kan je wel het e.e.a. ophalen.
Wederom veel te ingewikkeld. Het password kun je sowieso never ophalen, en voor de username zelf heb je geen LDAP of ADSI nodig..

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 15:23
Verwijderd schreef op 22 april 2004 @ 14:04:
Nee. Je kunt met .ASP niet zien welk password een user gebruikt heeft om in te loggen (godzijdank).

Imo zit je veel te ingewikkeld te doen. In plaats van dit in code op te lossen, kun je dit veel beter op je webserver oplossen. Zet alleen windows-integrated authentication aan, en dan kunnen alleen geauthenticeerde gebruikers gebruik maken van je intranet.

De username kun je wel achterhalen, hoe dat hangt een beejte af van de taal welke je gebruikt (javascript, vbscript, enz).

Zoeken bij google geeft je het antwoord pasklaar..

hier bv. een voorbeeldje:
http://groups.google.nl/g...2740%40tkmsftngp13&rnum=4
OK, dat betreft het password kan ik nog wel indenken.
Je oplossing op de webserver zelf door het aanzetten van Windows Integrated Authentication is denk ik niet de bedoeling, want dan moet je voor het intranet weer opnieuw inloggen.

Het is de bedoeling dat de users in Windows inloggen en dat ze zodra ze naar het intranet gaat direct properties beschikbaar zijn van hun Domain User account.
Dus bestaat het account in de User Manager for Domains op het domein dan is de user direct geautoriseerd en kan hij gelijk verder zonder opnieuw in te loggen..

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 15:23
Oh, ik gebruik trouwens VBScript (ASP 3.0) met IIS 5.0 op Win2k Server

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 15:23
Wat is LDAP en ADSI en waar staat dit voor??

  • mylar
  • Registratie: Mei 2002
  • Laatst online: 13-05 16:48
als je asp.net zou gebruiken is dit geen enkel probleem.
In de web.config kan je dan aangeven welke users/usergroups toegang hebben. Je kan het ook in de asp code opvangen door de username op te vragen van de ingelogde user, en dan te checken of die toegang mag hebben. Je kan ook het domein, de user groups enz checken.
Of het werkt buiten een nt domein weet ik niet, maar ik gebruik het nu voor een intranet website waar er verschillende rechten op zijn naargelang de aangemelde user. De normale manier zou zijn user en pass invullen en met sessies enz...
Maar met dit systeem van nt user is het veel eenvoudiger opgelost (vind ik zelf) :)

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 15:23
mylar schreef op 22 april 2004 @ 14:19:
als je asp.net zou gebruiken is dit geen enkel probleem.
In de web.config kan je dan aangeven welke users/usergroups toegang hebben. Je kan het ook in de asp code opvangen door de username op te vragen van de ingelogde user, en dan te checken of die toegang mag hebben. Je kan ook het domein, de user groups enz checken.
Of het werkt buiten een nt domein weet ik niet, maar ik gebruik het nu voor een intranet website waar er verschillende rechten op zijn naargelang de aangemelde user. De normale manier zou zijn user en pass invullen en met sessies enz...
Maar met dit systeem van nt user is het veel eenvoudiger opgelost (vind ik zelf) :)
Ja, had ook al wel gezien en gelezen dat het met .NET wel kan, maar helaas heb ik hier nog veel te weinig verstand van. We werken dus gewoon met ASP 3.0.
Ik heb nu wel al een component, AspUser van Persits waarmee ik alle users en properties daarvan kan ophalen binnen het domein, dat is geen probleem.

Alleen moet ik nog weten wie er op de client is ingelogd...

Verwijderd

Urk schreef op 22 april 2004 @ 14:14:
Wat is LDAP en ADSI en waar staat dit voor??
Ik denk toch echt dat je zelf wat meer aan het zoeken moet..

What is LDAP?
Active Directory Service Interfaces Overview

//edit

en ja hoor.. even bij google zoeken op 'asp vbscript windows user name' en de hits stromen binnen.. waaronder ook deze:

http://www.codeproject.com/vbscript/userinfo.asp

Afbeeldingslocatie: http://www.codeproject.com/vbscript/UserInfo/UserInfo.jpg

[ Voor 24% gewijzigd door Verwijderd op 22-04-2004 14:26 ]


  • Urk
  • Registratie: Maart 2000
  • Laatst online: 15:23
Verwijderd schreef op 22 april 2004 @ 14:24:
[...]


Ik denk toch echt dat je zelf wat meer aan het zoeken moet..

What is LDAP?
Active Directory Service Interfaces Overview

//edit

en ja hoor.. even bij google zoeken op 'asp vbscript windows user name' en de hits stromen binnen.. waaronder ook deze:

http://www.codeproject.com/vbscript/userinfo.asp

[afbeelding]
Bij Google stromen er altijd wel hits binnen ;)
Je laatste voorbeeld is geheeld Client side, daar heb ik dus niets aan helaas.
Heb de Search op zowel GoT en Google al veel gebruikt, de kunst is ook om dit goed onder woorden te brengen de de juiste search criteria te gebruiken.. :/

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:18

TeeDee

CQB 241

Urk schreef op 22 april 2004 @ 14:32:
[...]
Je laatste voorbeeld is geheeld Client side, daar heb ik dus niets aan helaas.
Dat maakt toch niet uit? Username e.d. is toch aan de machine gebonden via het domain waarop ie inlogt?

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Zet op je IIS alle andere vormen van auth uit, alleen windows auth.

Voor zover ik kan zien (kan niet testen hier) moet je dan de username zo kunnen ophalen:

Request.ServerVariables ("LOGON_USER")

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 15:23
TeeDee schreef op 22 april 2004 @ 14:35:
[...]

Dat maakt toch niet uit? Username e.d. is toch aan de machine gebonden via het domain waarop ie inlogt?
Snap niet helemaal wat je bedoelt. Hoe zou ik dit dan kunnen vergelijken met een stukje ServerSide script?
Oftewel hoe vergelijk ik bijvoorbeeld de Username waarmee is ingelogd met de Usernames onder het domein, komt deze voor dan is het OK, anders niet.

Do I see something wrong? :?

Verwijderd

Urk schreef op 22 april 2004 @ 14:38:
[...]


Snap niet helemaal wat je bedoelt. Hoe zou ik dit dan kunnen vergelijken met een stukje ServerSide script?
Oftewel hoe vergelijk ik bijvoorbeeld de Username waarmee is ingelogd met de Usernames onder het domein, komt deze voor dan is het OK, anders niet.

Do I see something wrong? :?
Ja. Als je gewoon je IIS auth gebruikt, dan KAN er geen user inloggen die niet onder het domein voorkomt..

  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 14:14
Misschien kun je je webdirectory (dus in de config van IIS) opgeven dat er moet worden ingelogd met NTLM-authenticatie (windows integrated authenticatie)? Vervolgens kun je uit de headers de username halen. Password is niet meer nodig, wat dat is al gecheckt... anders kreeg je immers de pagina niet te zien.

edit: shit, ik type te traag... dit antwoord is ondertussen al gegeven.

[ Voor 12% gewijzigd door jurri@n op 22-04-2004 14:46 ]


  • Urk
  • Registratie: Maart 2000
  • Laatst online: 15:23
Verwijderd schreef op 22 april 2004 @ 14:40:
[...]


Ja. Als je gewoon je IIS auth gebruikt, dan KAN er geen user inloggen die niet onder het domein voorkomt..
Nee, ok, dat snap ik HELEMAAL! Maar dan moet je wel 2 keer inloggen:
1 keer in Windows
1 keer op de site via IIS Auth.

De tweede wil ik graag overslaan...

Verwijderd

jurri@n schreef op 22 april 2004 @ 14:44:
Misschien kun je je webdirectory (dus in de config van IIS) opgeven dat er moet worden ingelogd met NTLM-authenticatie (windows integrated authenticatie)? Vervolgens kun je uit de headers de username halen. Password is niet meer nodig, wat dat is al gecheckt... anders kreeg je immers de pagina niet te zien.

edit: shit, ik type te traag...
Joh, daar had ik nou nooit aan gedacht.. O-)..

TS schijnt dat niet te willen om de een of andere reden..

Verwijderd

Urk schreef op 22 april 2004 @ 14:45:
[...]


Nee, ok, dat snap ik HELEMAAL! Maar dan moet je wel 2 keer inloggen:
1 keer in Windows
1 keer op de site via IIS Auth.

De tweede wil ik graag overslaan...
Hoe kom je hierbij? Dit is dus niet zo.

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 15:23
Verwijderd schreef op 22 april 2004 @ 14:46:
[...]


Hoe kom je hierbij? Dit is dus niet zo.
Ik haal volgens mij wat dingetjes door elkaar... |:(
Stom, zodra ik natuurlijk anonymous IIS access uitzet en ik log in vanaf een user binnen het domein die geautoriseerd is voor de virtual folder (op NTFS security permission) komt hij direct op de pagina, kom ik vanaf buiten moet ik me eerst op het domein als domain user identificeren.

Volgens mij kom ik hier wel verder mee... denk ik... :)

Verwijderd

Urk schreef op 22 april 2004 @ 15:04:
[...]
Ik haal volgens mij wat dingetjes door elkaar... |:(
Dat gebeurt al snel met dit soort dingen, mensen gaan vaak veel te ingewikkeld doen :)
Volgens mij kom ik hier wel verder mee... denk ik... :)
Mooi!

(voordeel van deze methode: het is niet onmogelijk om van buiten het domein toch gebruik te maken van je website, alleen dan moet je idd authenticeren).

[ Voor 22% gewijzigd door Verwijderd op 22-04-2004 15:07 ]


  • Urk
  • Registratie: Maart 2000
  • Laatst online: 15:23
Bedankt voor alle hulp allemaal _/-\o_ _/-\o_ _/-\o_

Precies, Nerds doen vaak te moeilijk he? ;)
Als er nog wat is post ik het hier wel weer.

  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

(jarig!)
PHP:
1
2
3
4
5
6
7
8
9
10
11
<%
Dim objNet
Set objNet = CreateObject("WScript.NetWork") 
Dim strInfo
strInfo = "Userame: '" & objNet.UserName & "'<br>" & vbCRLF & _
          "Computer name: '" & objNet.ComputerName & "'<br>" & vbCRLF & _
          "Domain name: '" & objNet.UserDomain & "'<br>"
response.write strInfo
    
Set objNet = Nothing
%>


En deze is ook wel handig:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<table>
<tr><td>variabele</td><td>waarde</td></tr>
<% 
For Each Key in Request.ServerVariables
   If instr(Key,"_ALL")+instr(key,"ALL_")=0 then
      tempvalue=trim(request.servervariables(Key))
      if tempvalue = "" then
        tempvalue = "<i>null</i>"
      end if
      response.write "<tr><td><b>" & Key & "</td><td>" & tempvalue & "</TD></TR>"
   end if
Next
%>
</table>


Beide zijn vbscript asp.

Huur mij in als freelance SEO consultant!


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:18

TeeDee

CQB 241

edit: grrr....
verkeerde topic, hell verkeerde forum zelfs!
solly 8)7

[ Voor 90% gewijzigd door TeeDee op 23-04-2004 09:11 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

CrashOne schreef op 22 april 2004 @ 15:16:
<%
Dim objNet
Set objNet = CreateObject("WScript.NetWork")
Dim strInfo
strInfo = "Userame: '" & objNet.UserName & "'<br>" & vbCRLF & _
"Computer name: '" & objNet.ComputerName & "'<br>" & vbCRLF & _
"Domain name: '" & objNet.UserDomain & "'<br>"
response.write strInfo

Set objNet = Nothing
%>
Met dit scriptje krijg ik mooi mijn username te zien, tenminste als ik de asp test op client. Test ik ze op de server, dan krijg ik de username van de server.
<table>
<tr><td>variabele</td><td>waarde</td></tr>
<%
For Each Key in Request.ServerVariables
If instr(Key,"_ALL")+instr(key,"ALL_")=0 then
tempvalue=trim(request.servervariables(Key))
if tempvalue = "" then
tempvalue = "<i>null</i>"
end if
response.write "<tr><td><b>" & Key & "</td><td>" & tempvalue & "</TD></TR>"
end if
Next
%>
</table>
Bij dit scriptje krijg ik lokaal weer m'n username te zien, maar als ik het op de server test krijg ik voor alle variabele zoals remote_user, Logon_user,... null-waarden.

Kan ik nu op één of andere manier, als de asp op de server staat, de login van m'n client te weten komen?
:/

  • watzie
  • Registratie: Juni 2001
  • Laatst online: 16-05 15:09
IIS: challenge-response aan, anonymous access uit. Zoals ALTIJD op elke IIS bak standaard aan zou moeten staan.

Zolang anonymous is toegestaan krijg je altijd de internet guest account te zien.

Volgens mij is dit trouwens al een half dozijn keer gemeld hier.

Verwijderd

Als ik anonymous IIS access uitzet krijg ik wel iets te zien, maar dan is het weer de username van de server. :?
Edit : Die challenge response zie ik hier nergens staan... Afhankelijk van de IIS versie of zo? Ik heb IIS 5.0. Welke impact heeft dit trouwens op andere applicaties op de server?

[ Voor 48% gewijzigd door Verwijderd op 07-05-2004 11:02 ]


Verwijderd

ASP
***

PRB: Request.ServerVariables("LOGON_USER") Returns Empty String
http://support.microsoft....aspx?scid=kb;EN-US;188717

IIS: Authentication and Security Features
http://support.microsoft....aspx?scid=kb;EN-US;142868

ASP.NET
*******

PRB: Request.ServerVariables("LOGON_USER") Returns Empty String in ASP.NET
http://support.microsoft....aspx?scid=kb;EN-US;306359
Pagina: 1