windows - Hvad er der galt med GetUserName Win32 API?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger GetUserName Win32 API til at få brugerens navn på min computer, men jeg fandt brugernavnet er forskelligt (kun store versioner med små bogstaver), når jeg bruger min VPN-forbindelse til arbejde, da jeg var hjemme. Jeg undrer mig over, om VPN-klient eller anden software kan påvirke brugernavnet?

Bedste reference


API'en GetUserName angiver: [1]



  Henter brugerens navn
  forbundet med den aktuelle tråd.

  
  Brug funktionen GetUserNameEx til
  hent brugernavnet i en specificeret
  format. Yderligere oplysninger er
  leveret af IADsADSystemInfo
  grænseflade.



Så det ser ud til, at GetUserName bruger IADsADSystemInfo til at få det s oplysninger. [2]


Hvis du ser på IADsADSystemInfo-grænsefladen, ser du, at den har metoden: [3]



  get\_UserName

  Henter den aktive
  Katalog udmærket navn på
  nuværende bruger, som er logget på
  bruger eller brugeren efterlignet af
  opkaldstråd.



Så når du tilsluttes via VPN til et domænenavn, vil du højst sandsynligt få navnet på den aktuelle bruger, Active Directory, og når du ikke kommer, får du højst sandsynligt det brugernavn, du skrev ind (uanset hvor du indtastede) til log på computeren med.

Andre referencer 1


Denne API returnerer navnet som skrevet af brugeren, når du logger på computeren. Så hvis mit brugernavn er 'esac', men jeg skriver 'Esac', vil denne API returnere 'Esac'. Efterfølgende, hvis jeg skriver 'ESAC', det er det, det vil returnere også.

Andre referencer 2


Ikke 100\% sikker, men jeg formoder, at GetUserName ender med at tale med DC, når du er forbundet til dit domænenetværk, mens det vil bruge det lokale svar ellers