Comment récupérer un username sans passer par wscript.network...

Contenu du snippet

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/cpconaspnetimpersonation.asp

Le code est en dessous.

Source / Exemple :


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

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.