【问题标题】:How to copy SID for storage with C++如何使用 C++ 复制 SID 以进行存储
【发布时间】:2013-02-23 23:30:50
【问题描述】:

假设我使用以下 API 获取用户的 SID:

TOKEN_USER* pTU = (TOKEN_USER*)pbytes;
DWORD dwSize;
GetTokenInformation(hToken, TokenUser, pTU, dwSize, &dwSize);

pTU->User.Sid;  //Contains the SID I need

我需要存储这个 SID 以供以后在程序中使用/比较。但是如何复制呢?

如果我这样做:

SID globalSIDStorage;
globalSIDStorage = *pTU->User.Sid;

我收到一个错误:

错误 C2679:二进制“=”:未找到采用右手的运算符 'PSID' 类型的操作数(或没有可接受的转换。

【问题讨论】:

    标签: c++ windows winapi sid


    【解决方案1】:

    您可能想使用CopySid

    【讨论】:

    • 谢谢。这里的问题是知道 SID 长度。有那个API吗?同样根据我的粗略计算,如果我将 SID 存储为二进制数组,它将最大为 68 个字节。能比这个大吗?
    • 好吧,没关系,它是GetLengthSid: msdn.microsoft.com/en-us/library/windows/desktop/…,最大 SID 大小在 SECURITY_MAX_SID_SIZE
    猜你喜欢
    • 2010-12-10
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多