本文介绍了通过SID来解决显示的用户名的最好方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我从注册表,HKEY_LOCAL_MACHINE \\ SOFTWARE \\微软\\的Windows NT \\ CURRENTVERSION \\ ProfileList文件读取SID的列表。
I read a list of SID from the registry, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList.
如何解决显示的用户名(如域\\用户的buildin \\用户)通过在C#中一个给定的SID字符串?
How to resolve the display username (e.g. DOMAIN\user, BUILDIN\user) by a given SID string in C#?
推荐答案
Win32 API函数的是用来查找对应于一个SID名。
The Win32 API function LookupAccountSid()
is used to find the name that corresponds to a SID.
执行LookupAccountSid()
具有以下签名:
BOOL LookupAccountSid(LPCTSTR lpSystemName, PSID Sid,LPTSTR Name, LPDWORD cbName,
LPTSTR ReferencedDomainName, LPDWORD cbReferencedDomainName,
PSID_NAME_USE peUse);
。
这里的的P / Invoke参考(样本code):
Here's the P/Invoke reference (with sample code): http://www.pinvoke.net/default.aspx/advapi32.LookupAccountSid
[DllImport("advapi32.dll", CharSet=CharSet.Auto, SetLastError = true)]
static extern bool LookupAccountSid (
string lpSystemName,
[MarshalAs(UnmanagedType.LPArray)] byte[] Sid,
StringBuilder lpName,
ref uint cchName,
StringBuilder ReferencedDomainName,
ref uint cchReferencedDomainName,
out SID_NAME_USE peUse);
这篇关于通过SID来解决显示的用户名的最好方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!