begin process at 2012 02 08 19:18:29
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ASP.Net

 > COMMENT RÉCUPÉRER UN USERNAME SANS PASSER PAR WSCRIPT.NETWORK...

COMMENT RÉCUPÉRER UN USERNAME SANS PASSER PAR WSCRIPT.NETWORK...


 Information sur la source

 Description

Salut.
Ce code a pour but d'éviter de galérer pendant des heures à se dire : pourquoi qd je fais CreateObject("WScript.network") dans mon vbscript, il me renvoie erreur d'activeX... Il s'agit d'une question de sécurité dans IE, et dans la configuration du webservice, et de IIS (et ou ou en fait... )

La technique d'aller chercher ça dans les bases de registres, mm combat, un peu léger... des fois on y a accès, des fois pas...

Mais il existe une classe dans les classes toutes faites de System qui le fait...

PS : je n'ai rien inventé hein, c juste une solution qui existe, ça évite d'avoir à se creuser et s'envoyer toute la classe System qui est un peu énorme...

Pour plus d'infos, aller sur cette URL
http://msdn.microsoft.com/library/fre/default. asp?url=/library/FRE/cpguide/html/cpconaspnetimper sonation.asp

Le code est en dessous.

Source

  • Dim strUsername as String = System.Security.Principal.WindowsIdentity.GetCurrent().Name
  • Response.write(strUserName)
  • 'Donc là, vous avez un truc du genre nom_Machine\ASPNET
  • 'C'est normal. Pour que ça marche, il faut ajotuer la ligne suivante au web.config
  • '(tout en haut, dans system.web)
  • ' Dans le webComfig
  • <identity impersonate="true"/>
  • 'Et là, vous avez bien votre username !
  • 'En creusant, je suis sur qu'il est possible d'avoir le network, et tout le reste, mais 'le principe est là. Après chacun l'utilise comme il veut !
  • 'S'il reste un truc du genre NOMDOMAINE\USER, on peut faire ensuite la
  • 'chose suivante
  • '-- Retire le "\"
  • username = (Mid(username, (InStr(username, "\")) + 1))
Dim strUsername as String = System.Security.Principal.WindowsIdentity.GetCurrent().Name

Response.write(strUserName)

'Donc là, vous avez un truc du genre nom_Machine\ASPNET
'C'est normal. Pour que ça marche, il faut ajotuer la ligne suivante au web.config
'(tout en haut, dans system.web)


' Dans le webComfig
<identity impersonate="true"/>

'Et là, vous avez bien votre username !
'En creusant, je suis sur qu'il est possible d'avoir le network, et tout le reste, mais 'le principe est là. Après chacun l'utilise comme il veut ! 

'S'il reste un truc du genre NOMDOMAINE\USER, on peut faire ensuite la 
'chose suivante
'-- Retire le "\"
username = (Mid(username, (InStr(username, "\")) + 1))





 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) GUESTBOOK AVEC GRIDVIEW par DanMor498
Source avec Zip CHECKED DROPDOWNLIST par fredzool
Source avec Zip Source avec une capture Source .NET (Dotnet) GRIDVIEW WITH TREEVIEW AND CALLBACK par fredzool
Source avec Zip APPELLER UN WEBSERVICE DEPUIS JAVASCRIPT par fredzool
Source avec Zip Source .NET (Dotnet) MONEY TEXTBOX WITH EMBEDED JAVASCRIPT par fredzool

Commentaires et avis

Commentaire de jesusonline le 06/04/2004 19:03:55 administrateur CS

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 :

&lt;configuration&gt;
(...)
  &lt;system.web&gt;
(...)  
  &lt;identity impersonate="true"/&gt;
(...)
  &lt;/system.web&gt;
(...)
&lt;/configuration&gt;

Commentaire de PeTeRsLaStAr le 06/04/2004 22:43:30

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...

Commentaire de jesusonline le 06/04/2004 23:06:27 administrateur CS

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 ...

Commentaire de RayBan le 07/04/2004 13:19: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

Commentaire de PeTeRsLaStAr le 07/04/2004 14:14:31

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 ???

Commentaire de Kytel le 07/04/2004 17:38:53

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 ;)

Commentaire de djnos le 01/10/2006 10:39:00

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....

Commentaire de briquetb le 04/09/2008 12:16:03

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.

Commentaire de sergeburki le 08/03/2010 18:00:52

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.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,900 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales