[PHP] Windows domein van gebruiker opvragen.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben een webapplicatie aan het bouwen binnen een windows netwerk waarvoor ik gebruik maak van de windows authorisatie.

De gebruikers van dit netwerk loggen in op het domein ORGANISATIE.

In PHP kan ik met de volgende code kijken wat de username is van de gebruiker:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function getUser($part){

    global $SYSTEM_user;

    if($SYSTEM_user[$part] != ''){

        return $SYSTEM_user[$part];
    }else{
        
        return checkUser($part - 1);
    }
}

// get username from logged user
$SYSTEM_user = split("\\\\", $_SERVER['LOGON_USER']);
$SYSTEM_username = strtolower(getUser(count($SYSTEM_user) - 1));
$SYSTEM_domain = strtolower(getUser(0));

Stel dat iemand inlogd met de gebruikersnaam ; ORGANISATIE\JGROEN, krijg ik de volgende gegevens:

User (complete loginstring): ORGANISATIE\JGROEN
Username: JGROEN
Domain: ORGANISATIE

Met deze gegevens kan ik controleren of de gebruiker ingelogd is op het juiste domein. Op de IIS server staat ingesteld dat er standaard wordt ingelogd op het domein ORGANISATIE. Een gebruiker hoeft dan alleen nog maar de gebruikersnaam in te voeren ipv domein + gebruikersnaam. Als de gebruiker dit doet, is de "inlogstring" JGROEN. Met mijn script kan ik dan niet meer zien wat het domein is waar de gebruiker op inlogd.

Niet helemaal ideaal dus. Met $_SERVER['LOGON_USER'] kan ik de gebruikersnaam opvragen. Dan moet er toch ook een directe manier zijn om het domein te verkrijgen??

Kunnen jullie helpen?

Alvast bedankt! _/-\o_

[ Voor 21% gewijzigd door Verwijderd op 16-06-2004 13:23 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Je gebruikt dus de combinatie IIS + PHP?

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Voila. Netbios authenticatie. Moet je alleen er even opletten dat dit script geen wonderen verricht, tussen windows versies heb ik toch wel verschillende problemen geconstateerd....

http://search.experts-exc...uages/PHP/Q_20562144.html

Want standaard kan het volgens mij niet, IIS pakt de domeinnaam en geeft hem niet meer af aan php, wel aan asp...

[ Voor 44% gewijzigd door Gomez12 op 16-06-2004 21:42 ]


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Verwijderd schreef op 16 juni 2004 @ 21:27:
[...]
Je gebruikt dus de combinatie IIS + PHP?
Nee dat denk ik niet , ik vermoed dat hij heeft over Apache icm ASP. 8)7
In PHP ...
Zie je wel ASP. Zeg ik toch.
Op de IIS server ...
Of ik zit er gewoon helemaal naast en TS bedoelt iets anders dan ik lees >:)

Acties:
  • 0 Henk 'm!

  • DavidAxe
  • Registratie: Maart 2000
  • Laatst online: 11-07 17:16
Ik zou niet weten of het mogelijk is wat je probeert te doen, want ik ken IIS niet.
Indien er bij gebruik van PHP i.c.m. IIS extra server-vars beschikbaar zijn dan zou je die natuurlijk ff kunnen weergeven om te kijken of daar tussen zit wat je nodig hebt.

PHP:
1
2
3
4
5
echo "<table>";
while (list($a,$b) = each($_SERVER)) {
     echo "<tr><td>" . $a . "</td><td>" . $b . "</td></tr>";
}
echo "</table>";


Zal alle onderdelen van de array _SERVER weergeven, zodat je kan zien of daar iets bruikbaars tussen zit.
(het is bij het ontwikkelen zoieso erg handig als je dit onderaan je output hebt staan, net als _POST, _GET etc.)
8)

@Nokia: print_r zou in dit geval idd handiger zijn, maar ik wil liever zelf mijn opmaak meegeven, in dit geval was print_r wel handiger geweest :-)

@sinaasappelsap: php_info() geeft mijns insziens te veel weer wat ik allemaal niet nodig heb (wordt het traag) en kan ook de pagina opmaak verstoren (te breed)

[ Voor 28% gewijzigd door DavidAxe op 16-06-2004 22:57 ]


Acties:
  • 0 Henk 'm!

Verwijderd

DavidAxe schreef op 16 juni 2004 @ 22:31:
PHP:
1
2
3
4
5
echo "<table>";
while (list($a,$b) = each($_SERVER)) {
     echo "<tr><td>" . $a . "</td><td>" . $b . "</td></tr>";
}
echo "</table>";
wel eens van print_r() gehoord? :)

Acties:
  • 0 Henk 'm!

Verwijderd

DavidAxe schreef op 16 juni 2004 @ 22:31:
PHP:
1
2
3
4
5
echo "<table>";
while (list($a,$b) = each($_SERVER)) {
     echo "<tr><td>" . $a . "</td><td>" . $b . "</td></tr>";
}
echo "</table>";
Wel eens van phpinfo() gehoord? :)

[ Voor 23% gewijzigd door Verwijderd op 16-06-2004 22:39 . Reden: smiley vergeten :) ]


Acties:
  • 0 Henk 'm!

Verwijderd

Gomez12 schreef op 16 juni 2004 @ 21:55:
Of ik zit er gewoon helemaal naast en TS bedoelt iets anders dan ik lees >:)
Niets is logisch! Door het expliciet te vragen kunnen misverstanden voorkomen worden.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik snap even niet waarom je het domain wil weten? Als $_SERVER["LOGON_USER"] beschikbaar is, dan is de gebruiker ingelogd op het domain wat is ingesteld op de IIS-server.

Of heb je meedere domains (kan dat ingesteld worden met IIS?) en wil je het daarom weten?

-Rémy
Pagina: 1