[PHP]windows login naam achterhalen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig met een active desktop die een aantal persoonlijke links laat zien.
Deze links zijn dus verschillend per persoon wat inlogd in windows.
Nu is mijn vraag: Kan ik met php achterhalen wie er in gelogd is zodat ik zijn of haar persoonlijke links kan laten zien?

Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 16-09 19:01

Tux

Als het niet wordt meegestuurd in de headers van de request denk ik niet dat het gaat lukken. Misschien met VBScript ofzo?

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

Verwijderd

in ieder geval bestaat de globale variabele naar je home dir, als je daar nou ook je prefs opslaat, dan ben je snel klaar

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
bij welke commando's moet ik dan kijken op php.net?

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 16-09 19:01

Tux

Als die webserver draait op de pc waarop die active desktop draait. Dan kan je met een scriptje de %USERNAME% uit MS-DOS halen.

$woei = `echo %USERNAME%`;

o.i.d., ik werk nooit met MS-DOS dingen in PHP :P

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 17-09 21:27

pistole

Frutter

je kan het in de request variabelen terugvinden mits je site is toegevoegd aan de "trusted sites" van IE.
Ik ken helaas alleen het equivalent van ASP: request.servervariables("USERNAME") (ofzo)
edit:
ff opgezocht:

$HTTP_SERVER_VARS['LOGON_USER']

[ Voor 19% gewijzigd door pistole op 01-04-2003 16:47 ]

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

Verwijderd

Je zou het inderdaad kunnen proberen met dat dos-achtig ding. Je clients loggen in op een domain?
PHP:
1
2
3
4
5
6
7
$username = exec("echo %username%");
if(!$username) {
  // no username in set-vars
} else {
  // $username is geset
  echo("Your username:".$username);
}

Zoiets? Laat even weten of het werkt :D

Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 17-09 21:27

pistole

Frutter

Verwijderd schreef op 01 april 2003 @ 16:47:
Je zou het inderdaad kunnen proberen met dat dos-achtig ding. Je clients loggen in op een domain?
PHP:
1
2
3
4
5
6
7
$username = exec("echo %username%");
if(!$username) {
  // no username in set-vars
} else {
  // $username is geset
  echo("Your username:".$username);
}

Zoiets? Laat even weten of het werkt :D
ho eens, dat gaat natuurlijk niet werken, want je webserver draait onder IUSR_machinename, in het geval van IIS, of in ieder geval niet onder je client's account. Als dat wel het geval is (dmv bv challenge/response auth) dan is de $HTTP_SERVER_VARS[] methode een stuk netter zo niet sneller

[ Voor 19% gewijzigd door pistole op 01-04-2003 16:51 ]

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

Verwijderd

Hmm.. je hebt gelijk. Is hier een andere oplossing voor te bedenken? (met het gebruik van Apache)

[ Voor 18% gewijzigd door Verwijderd op 01-04-2003 16:55 . Reden: edit ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb de pagina bij vertrouwde websites gezet, maar hij deed niks :S

Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 17-09 21:27

pistole

Frutter

geeft ie niets terug uit die $HTTP_SERVER_VARS?

Van php.net:
'PHP_AUTH_USER'
When running under Apache as module doing HTTP authentication this variable is set to the username provided by the user.

[ Voor 74% gewijzigd door pistole op 01-04-2003 17:00 ]

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 16-09 19:01

Tux

PHP:
1
print_r ($HTTP_SERVER_VARS);


of:
PHP:
1
print_r ($_SERVER);


Kijk eens of ie er in voorkomt.

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • kaandorp
  • Registratie: November 1999
  • Laatst online: 10-09 11:45
Kun je het niet eenmalig laten invullen en dan in een cookie opslaan?

Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 17-09 21:27

pistole

Frutter

Even een (dnek ik) belangrijke vraag: draai je php onder apache of onder IIS?
Indien onder IIS: haal even van je directory waar je je scripts hebt de IUSR_bla weg, en voeg 'Domain Users' (met read/execute) toe.
Dit dwingt de browser om te authentiseren.

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11:40
pistole schreef op 01 april 2003 @ 17:05:
Even een (dnek ik) belangrijke vraag: draai je php onder apache of onder IIS?
Indien onder IIS: haal even van je directory waar je je scripts hebt de IUSR_bla weg, en voeg 'Domain Users' (met read/execute) toe.
Dit dwingt de browser om te authentiseren.
Zoals hij al eerder zei, Apache :) Maar ik denk dat je de oplossing in het uitvoeren van een DOS dinggetje moet zoeken :)

|>


Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 17-09 21:27

pistole

Frutter

Simon schreef op 01 April 2003 @ 17:06:
[...]

Zoals hij al eerder zei, Apache :) Maar ik denk dat je de oplossing in het uitvoeren van een DOS dinggetje moet zoeken :)
Ja maar dat DOS dingetje heb je niets aan als je dat serverside uitvoert. Die user is namelijk niet ingelogd op de server.
Je zou het wel client-side kunnen scripten natuurlijk...

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11:40
pistole schreef op 01 April 2003 @ 17:08:
[...]

Ja maar dat DOS dingetje heb je niets aan als je dat serverside uitvoert. Die user is namelijk niet ingelogd op de server.
Je zou het wel client-side kunnen scripten natuurlijk...
Hmm, idd.. Client side lijkt me het makkelijst, desnoods via ranzig ActiveXje die variabelen verstuurt ofzo?

|>


Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 17-09 21:27

pistole

Frutter

code:
1
2
3
4
5
<script language=vbscript runat=client>
Set WshShell = CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("SYSTEM")
msgbox WshSysEnv("USERNAME")
</script>

Alleen dan ipv die msgbox de boel even terug posten of getten naar je server
edit:

De clients dienen dan natuurlijk wel de windows scripting host te hebben...

[ Voor 72% gewijzigd door pistole op 01-04-2003 17:19 . Reden: blaffen ]

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

Verwijderd

pistole schreef op 01 April 2003 @ 17:15:
Alleen dan ipv die msgbox de boel even terug posten of getten naar je server
edit:

De clients dienen dan natuurlijk wel de windows scripting host te hebben...
Hmm.. en wat is dat? 'Windows Scripting Host' ???

Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 17-09 21:27

pistole

Frutter

dat is de scripting runtime onder windows. Zie ook de msdn site

Ik heb ff snel iets heeeeel smerigs in elkaar getrapt. Ik krijg alleen gek genoeg mijn username niet mee. En tja.. Je moet activeX toestaan :|
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html>
<body>

<?
if ($HTTP_GET_VARS['klaar']!='') {
    print 'U bent "'.$HTTP_GET_VARS['user'].'", denk ik';
}
?>

<button onclick=blaf()>doe maar</button>
<script language=vbscript>
sub blaf
    Set WshNetwork = CreateObject("WScript.Network")
    window.location="blaf.php?klaar=tuuuuuurlijk&user="&WshNetwork.Username
end sub
</script>

</body>
</html>

Zie ook http://www.kiekeboe.cc/~pistole/blaf.php

[ Voor 100% gewijzigd door pistole op 01-04-2003 17:57 ]

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 17-09 09:56
cookies worden toch per profile apart bewaard? Zo ja kan je gewoon de cookie een levens duur geven van oneindig en iedereen een keer laten inloggen. Maar draait die webserver op iedereen zijn machine? Zo nee dan heb je vrij weinig aan server side user op haal methodes

Strava | Runkeeper | Endomondo (mijn leikr uploads)


Acties:
  • 0 Henk 'm!

Verwijderd

cybermans schreef op 01 April 2003 @ 18:54:
cookies worden toch per profile apart bewaard? Zo ja kan je gewoon de cookie een levens duur geven van oneindig en iedereen een keer laten inloggen. Maar draait die webserver op iedereen zijn machine? Zo nee dan heb je vrij weinig aan server side user op haal methodes
maar zowel, dan kan je gewoon commands uitvoeren.

PHP:
1
2
3
shell("echo %USERNAME%");
//of
shell("echo %USERNAME% > c:\username.txt");

>> of >, bij 1 van de 2 leegt hij de file ook, ik meen bij >

dan ophalen en klaar toch?
apache kan gewoon dos uitvoeren hoor, zeer zeker van.
owja, %USERNAME% werkt ALLEEN onder windows 2000, heb je 98 ofzo dan bestaat die waarde niet(ik heb wel ergens een file liggen hoe je dat wel kan ophalen).

[edit]
was het nou shell of exec in php? zit een beetje met vb in me hoofd ;)

[ Voor 8% gewijzigd door Verwijderd op 01-04-2003 22:26 ]


Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 17-09 21:27

pistole

Frutter

het heeft alleen zo weinig zin om dat server-side uit te voeren hè? Zie posts hierboven.

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

  • oZy
  • Registratie: Juli 2001
  • Laatst online: 15-09 13:48

oZy

Als je IIS gebruikt moet je voor de betreffende site "anonymous" disable'en, op die manier krijg je een 401 challenge, en werkt de LOGON_USER server variable. Je moet ook even alle "(Domain) Users" LSUV rechten geven op de betreffende map.

Acties:
  • 0 Henk 'm!

Verwijderd

Je weet uiteraard het IP van de computer die het opvraagt, dus misschien is er wat met LDAP te regelen.

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

alles wat hierboven staat kan toch helemaal niet? Die dos-boxjes zijn immers niet serverside? Wat je misschien kunt doen is bij het opstarten een IE window te laten meestarten met als URL www.server.com/mijnuser.php?naam=Spider.007 en die dan te binden aan een IP adres

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

dank jullie wel voor jullie antwoorden.. ik werk samen met de prutser die de vraag stelde ;) en het werkt nu

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html>

<?php
if ($HTTP_GET_VARS['klaar']!='') {
    print 'U bent "'.$HTTP_GET_VARS['user'].'", denk ik';
}
?>

<body onload=blaf()>
<script language=vbscript>
sub blaf
    Set WshNetwork = CreateObject("WScript.Network")
    window.location="index.php?user="&WshNetwork.Username
end sub
</script>

Acties:
  • 0 Henk 'm!

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 17-09 09:56
krijg nog streeds een error als ik het copy paste
line 4
char 1
object expected

Strava | Runkeeper | Endomondo (mijn leikr uploads)


Acties:
  • 0 Henk 'm!

Verwijderd

bij mij werkt deze code wel.. misschien verkeerde ie versie?

Acties:
  • 0 Henk 'm!

Verwijderd

cybermans schreef op 02 april 2003 @ 11:28:
krijg nog streeds een error als ik het copy paste
line 4
char 1
object expected
Staat je PHP op safemode? Zoja haal dit er eens af, want dan kan je natuurlijk niets executen hé ;)
Spider.007 schreef op 02 april 2003 @ 10:40:
alles wat hierboven staat kan toch helemaal niet? Die dos-boxjes zijn immers niet serverside? Wat je misschien kunt doen is bij het opstarten een IE window te laten meestarten met als URL www.server.com/mijnuser.php?naam=Spider.007 en die dan te binden aan een IP adres
zeg dan niets :X
Hij wil het gebruiken voor een AD(active desktop) en de server is zijn eigen pc. Vanuit php kan je gewoon dos uitvoeren, alleen je krijgt geen boxje te zien, maar alles wordt naar php geechot dus je ziet niet eens een box.

Maar even terzaken, je hebt me wel op een idee gebracht.
Gooi gewoon in de url van de active desktop iets als file.php?user=asd&pw=password
Dan is password alleen zodat anderen het niet 123 kunnen achterhalen, kan natuulijk makkelijk maar password kan je ook achterwegen laten.
Dan gewoon per user de url even goed zetten en klaar toch?
Of per user een koekie.

[ Voor 13% gewijzigd door Verwijderd op 02-04-2003 14:12 . Reden: safemode add. ]


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
Misschien zou je door middel van een of ander opstartscriptje de username en wachtwoord gecombineerd met het ip-adres in een beveiligde map op de server kunnen plaatsen. Bij het uitloggen verwijder je deze weer.

Acties:
  • 0 Henk 'm!

Verwijderd

<body onload=blaf()>
<script language=vbscript>
sub blaf
Set WshNetwork = CreateObject("WScript.Network")
window.location="index.php?user="&WshNetwork.Username
end sub
</script>

Zorgt ervoor dat de windows username word gevonden, precies zoals we willen dus, enige probleem nog is dat hij een active x foutmelding geeft

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Verwijderd schreef op 02 April 2003 @ 14:11:
[...]

Staat je PHP op safemode? Zoja haal dit er eens af, want dan kan je natuurlijk niets executen hé ;)

[...]
Alleen het stukje dat PHP locaal draaide had ik even gemist ;) dus zo erg is het allemaal niet; misschien breng ik mensen nog op ideeen :P
zeg dan niets :X
Hij wil het gebruiken voor een AD(active desktop) en de server is zijn eigen pc. Vanuit php kan je gewoon dos uitvoeren, alleen je krijgt geen boxje te zien, maar alles wordt naar php geechot dus je ziet niet eens een box.

Maar even terzaken, je hebt me wel op een idee gebracht.
Gooi gewoon in de url van de active desktop iets als file.php?user=asd&pw=password
Dan is password alleen zodat anderen het niet 123 kunnen achterhalen, kan natuulijk makkelijk maar password kan je ook achterwegen laten.
Dan gewoon per user de url even goed zetten en klaar toch?
Of per user een koekie.
Ja; zie je nou wel.... op idee brengen; dat zeg ik :P

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate

Pagina: 1