webForumDet fria alternativet

Smidigare sätt att hämta aktuellt sid på inloggad användare?

.NET

0 svar · 230 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Frågan#1

Detta funkar, men ser ju en aning dumt ut. Det måste väl finnas ett smidigare sätt att hämta "Sid" på current user?!

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

Public Function GetCurrentUserName() As String
Dim l As Long
Dim sUser As String

sUser = Space$(255)
l = GetUserName(sUser, 255)

'strip null terminator

If l <> 0 Then
   
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select SID from Win32_UserAccount Where Name='" & Left(sUser, InStr(sUser, Chr(0)) - 1) & "'", , 48)
    For Each objItem In colItems
        GetCurrentUserName = objItem.SID
    Next
Else
   Err.Raise Err.LastDllError, , _
     "A system call returned an error code of " _
      & Err.LastDllError
End If
End Function
257 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)