如何将PSID类型转换为包含SID字节值的字节数组?
就像是:
PSID pSid;
byte sidBytes[68];//Max. length of SID in bytes is 68
if(GetAccountSid(
NULL, // default lookup logic
AccountName,// account to obtain SID
&pSid // buffer to allocate to contain resultant SID
)
{
ConvertPSIDToByteArray(pSid, sidBytes);
}
-我应该如何编写函数ConvertPSIDToByteArray?
最佳答案
我认为您可能正在寻找的功能是ConvertSidToStringSid。通常的想法是将PSID
结构转换为实际上是LPTSTR
类型的wchar_t
。然后,您可以使用标准函数将其转换为使用wcstombs的多字节char数组,然后将以字节为单位提供SID。另外,您可以直接在wchar_t
类型上进行操作,而只需将其写出-有处理该功能的函数。无论哪种情况,结果都将被UTF-16 LE
编码,如果您需要更改结果,则必须进行转换。
关于c++ - 如何检索SID的字节数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2442518/