Service Windows et récupération du nom d'utilisateur

skowee59 Messages postés 78 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 29 juin 2006 - 2 mai 2005 à 14:34
skowee59 Messages postés 78 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 29 juin 2006 - 3 mai 2005 à 07:15
Je suis sous VB.Net 2002 + Framework 1.0.

J'ai créé un service Windows qui doit faire diverses choses (notamment
récupérer le nom d'utilisateur connecté à la machine) et qui accède à
un fichier de configuration en réseau. Le problème c'est que je suis
obligé de mettre la valeur Account du service à USER et de définir le
compte Administrateur pour qu'il puisse accéder correctement au réseau
mais par conséquent, il me retourne comme nom d'utilisateur
"Administrateur" !! et non pas le véritable utilisateur.

Pour récupérer le nom, j'utilise Environment.UserName.

Si j'utilse pour l'Account "LocalSystem", "LocalService" ou
"NetworkService", il me retourne bien le bon nom d'utilisateur mais il
n'accède pas au réseau !

Je tourne en rond...

Quelqu'un connait-il la solution ?

D'avance, merci.

Zerocool59

2 réponses

VBSorcier Messages postés 102 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 29 avril 2007
2 mai 2005 à 20:01
je suis pas trop VB.net donc je vais t'aider comme je peux, je sais que sous VB6 il faut faire comme ca pour recupérer le nom de l'utilisateur :

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As Long


Function UserName() As String
Dim sBuffer As String
Dim lSize As Long

sBuffer = Space$(255)
lSize = Len(sBuffer)
Call GetUserName(sBuffer, lSize)
If lSize > 0 Then
UserName = Left$(sBuffer, lSize)
Else
UserName = ""
End If
End Function

si tu adapter cela a ton code, cela devrait etre bon ...

a+
0
skowee59 Messages postés 78 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 29 juin 2006
3 mai 2005 à 07:15
J'essaie justement d'adapter ce code mais par contre je n'y suis pas encore arrivé.
En revanche, si tu es sous VB6, tu peux peut-être utilise Environ("username")
Ce sera plus rapide pour toi ;-)
Merci quand même pour ton aide.

Zerocool59
0
Rejoignez-nous