COMMENT RÉCUPÉRER UN USERNAME SANS PASSER PAR WSCRIPT.NETWORK...
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
6 avril 2004 à 19:03
sergeburki
Messages postés3Date d'inscriptionjeudi 7 septembre 2006StatutMembreDernière intervention 8 mars 2010
-
8 mars 2010 à 18:00
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
sergeburki
Messages postés3Date d'inscriptionjeudi 7 septembre 2006StatutMembreDernière intervention 8 mars 2010 8 mars 2010 à 18:00
Une des possibilités pour avoir le code utilisateur du client: passer par javascript :
du genre :
function windowsID ()
{
try {
var WinNetwork = new ActiveXObject("WScript.Network");
return WinNetwork.UserName;
}
catch (e) {
// on met un code utilisateur vide ou bidon ... selon les goûts
return 'unknown'
}
}
Si le composant activex n'est pas installé ou si il n'est pas autorisé (cf paramètres IE, section sécurité, personnaliser le niveau), on récupère un code non vide avec la valeur "unknown"...
Avec ce code, facile d'initialiser un écran de login.
briquetb
Messages postés25Date d'inscriptionjeudi 31 janvier 2008StatutMembreDernière intervention30 septembre 2008 4 sept. 2008 à 12:16
Bonjour tout le monde,
Je sais que le sujet remonte a très très loin mais il me faut absolument cette réponse.
Avec le code ci-dessus je récupère le login du serveur et non le login du client.
J'ai cherché sur tout le net et impossible de trouver.
Je dois recuperer le login sur un site intranet.
SVP repondez le plus vite possible.
djnos
Messages postés19Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention15 février 2008 1 oct. 2006 à 10:39
Moi perso, s'il fallait récupérer un login utilisateur, chose que j'ai déjà faite, j'oublierais tout de suite l'idée des active-x etc... qui sont vraiment bien bloqués par les navigateurs aujourd'hui (il faut faire explicitement autoriser etc...), autant créer une petite applet et la signer avec un certificat que vous aurez généré au préalable. Dans cette applet le principe est simple :
vous récupérez pour windows la variable d'envirronement %USERNAME% et sous Linux vous pouvez par exemple spliter la variable $HOME mais ca c'est pas pour tenter de faire des trucs pas correct sur la machine du client... moi c'était pour une utilisation 'correcte' sur un réseau d'entreprise....
Pour ce qui font de l'intranet
En ce qui me concerne j'utilise le WScript.Network sans aucun problème. Pour que tout le monde puisse l'utiliser j'ai paramétré la classe d'adresse de mon réseau pour qu'elle ne passe pas par mon proxy (le paramètrage se fait donc au niveau de l'intranet). Ensuite j'ai permis les scripts Active X dans les paramètres de Sécurité de mon INTRANET et pas l'internet sinon bonjour la sécu. Je peux ainsi récupérer le UserName et le UserDomain. Par défaut les active X ne sont pas permis alors pour ceux qui en plus ont Active Directory ils peuvent créer une policy pour que ces paramètrages se fassent sur tous les pcs du réseau. Il me reste encore à récupérer les adresses mail en comparant le login que je récupère à la base Active Directory mais c'est une autre histoire ... D'ailleurs si y'en a qu'on déjà fait je suis preneuse parce que je manque un peu de temps ... Merci ;)
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 7 avril 2004 à 14:14
Marche pas chez moi ton code...
il faut ajouter des éléments ailleurs ?
la commande existe, mais elle renvoie rien, je suis identifié en tant qu'anonyme...
De quel user s'agit il ???
cs_RayBan
Messages postés17Date d'inscriptionjeudi 24 janvier 2002StatutMembreDernière intervention 9 juin 2004 7 avril 2004 à 13:19
Un peu compliqué ton truc...
Voici une solution plus élégante :
'Le nom de l'utilisateur
response.write user.Identity.Name
'Booléen pour savoir si l'utilisateur est authentifié
response.write user.Identity.IsAuthenticated
'Un string pour connaître le type d'authentification
response.write User.Identity.AuthenticationType
'Un booléen pour savoir si l'utilisateur fait parti d'un certain groupe
response.write user.IsInRole("MonRole")
@ plus
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 6 avril 2004 à 23:06
C'est vrai que si c'etait le login du client se serait pas mal, je sais qu'il existe une possibillité pour avoir le login du client (et meme le mot de passe) mais c'etait une faille de IE, et la technique utilisé était tres complexe, et ca ressemblait fort à du hacking, c'etait une version de IE assez recente en +
Mais ca ne resoud en rien le pb d'avoir le login du client ...
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 6 avril 2004 à 22:43
En fait, je l'utilise pour la chose suivante : lorsqu'un user se connecte pour la première fois et a une fenêtre de type "user/mdp", ben il a pas a saisir le username, mais juste le mdp...
Mais bon, le pb ... c que c que ça résout pas mon pb, dans ce sens ou c du server... et non pas du client :-|
Du coup, il est bcp moins utile que prévu...
Mais bon. J'aurais la mm chose en VBScript ou en Javascript avec autre chose que wscript.network, je serais trop content...; Mais depuis les dernières versions de IE, ça marche plus trop, sauf en passant par un activeX à priori...
Enfin au jour d'aujourd'hui, j'ai rien trouvé quoi...
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 6 avril 2004 à 19:03
Ton code permet de recuperer juste le login de la machine qui heberge, je ne vois pas vraiment l'interet ...
pour ce qui est du code à rajouter dans le web.config il faut le mettre dans le system.web comme ceci :
8 mars 2010 à 18:00
du genre :
function windowsID ()
{
try {
var WinNetwork = new ActiveXObject("WScript.Network");
return WinNetwork.UserName;
}
catch (e) {
// on met un code utilisateur vide ou bidon ... selon les goûts
return 'unknown'
}
}
Si le composant activex n'est pas installé ou si il n'est pas autorisé (cf paramètres IE, section sécurité, personnaliser le niveau), on récupère un code non vide avec la valeur "unknown"...
Avec ce code, facile d'initialiser un écran de login.
4 sept. 2008 à 12:16
Je sais que le sujet remonte a très très loin mais il me faut absolument cette réponse.
Avec le code ci-dessus je récupère le login du serveur et non le login du client.
J'ai cherché sur tout le net et impossible de trouver.
Je dois recuperer le login sur un site intranet.
SVP repondez le plus vite possible.
1 oct. 2006 à 10:39
vous récupérez pour windows la variable d'envirronement %USERNAME% et sous Linux vous pouvez par exemple spliter la variable $HOME mais ca c'est pas pour tenter de faire des trucs pas correct sur la machine du client... moi c'était pour une utilisation 'correcte' sur un réseau d'entreprise....
7 avril 2004 à 17:38
En ce qui me concerne j'utilise le WScript.Network sans aucun problème. Pour que tout le monde puisse l'utiliser j'ai paramétré la classe d'adresse de mon réseau pour qu'elle ne passe pas par mon proxy (le paramètrage se fait donc au niveau de l'intranet). Ensuite j'ai permis les scripts Active X dans les paramètres de Sécurité de mon INTRANET et pas l'internet sinon bonjour la sécu. Je peux ainsi récupérer le UserName et le UserDomain. Par défaut les active X ne sont pas permis alors pour ceux qui en plus ont Active Directory ils peuvent créer une policy pour que ces paramètrages se fassent sur tous les pcs du réseau. Il me reste encore à récupérer les adresses mail en comparant le login que je récupère à la base Active Directory mais c'est une autre histoire ... D'ailleurs si y'en a qu'on déjà fait je suis preneuse parce que je manque un peu de temps ... Merci ;)
7 avril 2004 à 14:14
il faut ajouter des éléments ailleurs ?
la commande existe, mais elle renvoie rien, je suis identifié en tant qu'anonyme...
De quel user s'agit il ???
7 avril 2004 à 13:19
Voici une solution plus élégante :
'Le nom de l'utilisateur
response.write user.Identity.Name
'Booléen pour savoir si l'utilisateur est authentifié
response.write user.Identity.IsAuthenticated
'Un string pour connaître le type d'authentification
response.write User.Identity.AuthenticationType
'Un booléen pour savoir si l'utilisateur fait parti d'un certain groupe
response.write user.IsInRole("MonRole")
@ plus
6 avril 2004 à 23:06
Mais ca ne resoud en rien le pb d'avoir le login du client ...
6 avril 2004 à 22:43
Mais bon, le pb ... c que c que ça résout pas mon pb, dans ce sens ou c du server... et non pas du client :-|
Du coup, il est bcp moins utile que prévu...
Mais bon. J'aurais la mm chose en VBScript ou en Javascript avec autre chose que wscript.network, je serais trop content...; Mais depuis les dernières versions de IE, ça marche plus trop, sauf en passant par un activeX à priori...
Enfin au jour d'aujourd'hui, j'ai rien trouvé quoi...
6 avril 2004 à 19:03
pour ce qui est du code à rajouter dans le web.config il faut le mettre dans le system.web comme ceci :
<configuration>
(...)
<system.web>
(...)
(...)
</system.web>
(...)
</configuration>