IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

Récupérer le nom d'utilisateur


Sujet :

Web Perl

  1. #1
    Candidat au Club
    Homme Profil pro
    DUT Informatique
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : DUT Informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Récupérer le nom d'utilisateur
    Bonjour,

    Voilà j'ai un soucis depuis plusieurs jours, j'essaye de récupérer depuis mon script perl le nom de compte utilisateur que j'ai utilisé pour me connecter sur mon pc.
    J'ai déjà essayé plusieurs variables d'environnements ainsi que Win32 mais les seules qui fonctionnent me renvoient juste le login du serveur sur lequel est exécuté le script.
    Est ce que quelqu'un aurait une idée ?

    Merci d'avance,

    Sayanel

  2. #2
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    use Win32;
    print Win32::LoginName;
    ?

    à moins que j'ai mal compris ?
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  3. #3
    Candidat au Club
    Homme Profil pro
    DUT Informatique
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : DUT Informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    C'est l'idée ! Cette commande marche parfaitement quand je l'exécute dans le shell sauf que lorsque je fais appel à elle depuis le web elle me renvoie le login du serveur et non le mien ..

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Je pense que c'est normal.

    Si tu passe par le web, tu interroge le service Web. Un service n'est pas au courant de qui est connecté ou pas. C'est un service qui tourne en tâche de fond.

    Et puis imagine si tu poussait un peu ton idée sur un serveur RDP (de login donc).

    Tu as 30 utilisateurs connectés dessus, ton serveur Web, il retourne l'identité de quel utilisateur ? Il ne sait pas.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Candidat au Club
    Homme Profil pro
    DUT Informatique
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : DUT Informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Ok je comprends merci pour l'explication
    Toutefois j'ai quand même besoin de trouver une solution ..
    Petite précision: le script ne sera déployé que sur un réseau local d'entreprise,
    et je dois récuérer ce nom de compte pour éviter que les utilsiateurs n'aient à rentrer un login et un password. Toutes les machines tournent sous Windows xp.
    Avez vous des solutions ?

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Donc on revient à la question initiale :

    Comment un service (Web mais peut importe) peut il savoir qui est connecté sur la machine ?

    J'ai bien un début de piste en analysant les log EventLog car on trouve dedans une trace de la connexion mais j'ai peur que cela devienne une usine à gaz.
    Code EventViewer : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    L’ouverture de session d’un compte s’est correctement déroulée.
    
    Sujet*:
    	ID de sécurité*:		Système
    	Nom du compte*:		LUMIÈRE$
    	Domaine du compte*:		WORKGROUP
    	ID d’ouverture de session*:		0x3e7
    
    Type d’ouverture de session*:			7
    
    Nouvelle ouverture de session*:
    	ID de sécurité*:		lumière\Raymond
    	Nom du compte*:		Raymond
    	Domaine du compte*:		lumière
    	ID d’ouverture de session*:		0xc02fb8
    	GUID d’ouverture de session*:		{00000000-0000-0000-0000-000000000000}
    
    Informations sur le processus*:
    	ID du processus*:		0x3d4
    	Nom du processus*:		C:\Windows\System32\winlogon.exe
    
    Informations sur le réseau*:
    	Nom de la station de travail*:	LUMIÈRE
    	Adresse du réseau source*:	127.0.0.1
    	Port source*:		0
    
    Informations détaillées sur l’authentification*:
    	Processus d’ouverture de session*:		User32 
    	Package d’authentification*:	Negotiate
    	Services en transit*:	-
    	Nom du package (NTLM uniquement)*:	-
    	Longueur de la clé*:		0
    
    Cet événement est généré lors de la création d’une ouverture de session. Il est généré sur l’ordinateur sur lequel l’ouverture de session a été effectuée.
    
    Le champ Objet indique le compte sur le système local qui a demandé l’ouverture de session. Il s’agit le plus souvent d’un service, comme le service Serveur, ou un processus local tel que Winlogon.exe ou Services.exe.
    
    Le champ Type d’ouverture de session indique le type d’ouverture de session qui s’est produit. Les types les plus courants sont 2 (interactif) et 3 (réseau).
    
    Le champ Nouvelle ouverture de session indique le compte pour lequel la nouvelle ouverture de session a été créée, par exemple, le compte qui s’est connecté.
    
    Les champs relatifs au réseau indiquent la provenance d’une demande d’ouverture de session à distance. Le nom de la station de travail n’étant pas toujours disponible, peut être laissé vide dans certains cas.
    
    Les champs relatifs aux informations d’authentification fournissent des détails sur cette demande d’ouverture de session spécifique.
    	- Le GUID d’ouverture de session est un identificateur unique pouvant servir à associer cet événement à un événement KDC .
    	- Les services en transit indiquent les services intermédiaires qui ont participé à cette demande d’ouverture de session.
    	- Nom du package indique quel est le sous-protocole qui a été utilisé parmi les protocoles NTLM.
    	- La longueur de la clé indique la longueur de la clé de session générée. Elle a la valeur 0 si aucune clé de session n’a été demandée.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  7. #7
    Candidat au Club
    Homme Profil pro
    DUT Informatique
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : DUT Informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Mais c'est pas possible que mon script accède à ce fichier là sur le poste client n'est ce pas ?

  8. #8
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Ce log se trouve dans un fichier binaire et pour lire ce fichier binaire, il faut utiliser l'API EventLog Microsoft. Donc dans un script "basique", je ne pense pas. Je sais que le nouveau shell Windows a beaucoup plus de fonctionnalité et que peut être nativement, il pourrait lire ces log, faudrait tester.

    Mais avant de s'emballer sur cette solution, il faut peut être attendre d'autres idées.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  9. #9
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Je crois que la solution est coté client. Qu'est ce qu'on exécute coté client ? Plutôt du javascript, non ? Donc à ta place je chercherais plutôt à régler ce point avec ajax (pschitt !) pour transmettre l'info à ton script perl et lui permettre de continuer à faire son job...

    Perso les questions d'authentification de ce genre que j'ai eu à régler n'ont eu de solution que grâce à un proxy avec authentification systématique (lié à un annuaire LDAP).

  10. #10
    Candidat au Club
    Homme Profil pro
    DUT Informatique
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : DUT Informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Alors j'a trouvé plusieurs solutions:

    La première en JavaScript:

    var wshell = new ActiveXObject("wscript.shell");
    var username = wshell.ExpandEnvironmentStrings("%username%"); alert(username);

    Seulement ca ne fonctionne que sur Internet Explorer !
    Si ca ne marche pas il faut faire ceci sous IE:
    " Go to Tools > Internet options > Security > Custom Level and Under the ActiveX controls and plug-ins, select Enable for Initializing and Script ActiveX controls not marked as safe "

    Ensuite j'a trouvé pour faire fonctionner les variables d'environnement perl sur le serveur web sans que celui ci ne renvoi le nom d'utilisateur du serveur.

    Sous XP:
    Control Panel -> Administrative Tools -> Internet Information Service -> Selectionner le dossier contenant le code -> Clique droit Propriété -> Directory Security -> Anonymous access and authentication control -> Edit -> Décocher Anonymous Access et cocher "Integrated Windows authentication" !
    Ensuite le nom de compte sera dans la fonction getlogin (de CGI je crois) ou dans $ENV{USERNAME}, $ENV{USER} ou $ENV{LOGNAME}.

    Merci pour votre aide et à bientot !

    Sayanel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/03/2008, 15h56
  2. Réponses: 2
    Dernier message: 14/07/2006, 20h36
  3. Réponses: 10
    Dernier message: 17/05/2006, 11h22
  4. [Internet] Récupérer le nom d'utilisateur ?
    Par Bleys dans le forum Delphi
    Réponses: 7
    Dernier message: 15/05/2006, 18h31
  5. Récupérer le nom d'utilisateur
    Par Zolex dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/06/2004, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo