[AD RMS SDK 利用由 公开的功能
Msdrm.dll 中的客户端可用于 Windows Server 2008、Windows Vista、Windows Server 2008 R2、Windows 7、Windows Server 2012 和 Windows 8。 它可能被更改,或者
在后续版本中不可用。 请改用 Active Directory Rights Management Services SDK 2.1,
它利用客户端在 Msipc.dll.] 中公开的功能。
DRMCreateUser 函数创建将被授予权限的用户。
语法
DRMEXPORT HRESULT UDAPICALL DRMCreateUser(
[in] PWSTR wszUserName,
[in] PWSTR wszUserId,
[in] PWSTR wszUserIdType,
[out] DRMPUBHANDLE *phUser
);
parameters
[in] wszUserName
一个以 null 结尾的字符串,用于标识用户或用户组, (请参阅备注) 。 此参数通常是电子邮件地址。 将创建的用户作为 hOwner 传入 DRMCreateIssuanceLicense 时,此值将附加到许可证 XrML 中的“所有者”节点。 有关此参数的可能值的详细信息,请参阅 wszUserIdType 参数。
[in] wszUserId
一个以 null 结尾的字符串,用于标识将被授予权限的用户。 此参数可以是 PASSPORT ID (PUID) 、Windows ID 安全 ID (SID) 或 NULL。 如果此参数为 NULL, 则 wszUserIdType 必须包含“Unspecified”。 此 ID 由 Active Directory Rights Management Services 系统验证。 有关此参数的可能值的详细信息,请参阅 wszUserIdType 参数。
[in] wszUserIdType
用户 ID 类型。 此参数的取值可为下列值之一:
“Windows”
对于此值, wszUserName 和 wszUserId 可以包含以下内容。
wszUserName
完全限定的 SMTP 地址。 如果 wszUserId 包含 SID,可以为 NULL。
wszUserId
可选 SID (仅用于装饰目的;未验证) 。 如果未给定,则许可证将记录“未指定”。
“Passport”
对于此值, wszUserName 和 wszUserId 可以包含以下内容。
wszUserName
完全限定的 SMTP 地址。 在所有情况下都是必需的。
wszUserId
可选 PUID (仅用于装饰目的;未验证) 。 如果未给定,则许可证将记录“未指定”。
“未指定”
对于此值, wszUserName 和 wszUserId 可以包含以下内容。
wszUserName
完全限定的 SMTP 地址。 在所有情况下都是必需的。
wszUserId
NULL (请参阅备注) 。
“Internal”
对于此值, wszUserName 和 wszUserId 可以包含以下内容。
wszUserName
NULL
wszUserId
下列类型作之一:
“任何人”
将向请求许可证的任何人授予许可证,但该许可证将附加到请求用户。
“所有者”
将向所有者授予在 DRMCreateIssuanceLicense 中指定的许可证。
“联合”
对于此值, wszUserName 和 wszUserId 可以包含以下内容。
wszUserName
完全限定的 SMTP 地址。 如果 wszUserId 包含 SID,可以为 NULL。
wszUserId
可选 SID (仅用于装饰目的;未验证) 。 如果未给定,则许可证将记录“未指定”。
[out] phUser
指向所创建用户句柄的指针。 调用 DRMClosePubHandle 以关闭句柄。
返回值
如果函数成功,该函数将返回 S_OK。
如果函数失败,它将返回一个 指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值。
注解
在许可证请求时,如果用户 ID 是 WINDOWS 或 PASSPORT,则用户必须出示通过 SID 或 PUID 标识自己的权限帐户证书。 如果用户 ID 类型为 UNSPECIFIED (也就是说,如果你不知道它是 Windows、Passport 还是) 的其他类型,则只需输入客户端的电子邮件地址,AD RMS 系统将单独使用该电子邮件地址来验证身份。 但是,此方法的安全性要低得多。
当客户端位于具有其自己的许可证服务器的企业中时,使用 Windows 授权 (这通常通过 LAN 或虚拟专用网) 发生。 当客户端从企业外部的服务器请求使用许可证时, (通常通过 Internet) ,应使用 Passport 授权。 若要在 AD RMS 服务上使用 Passport 授权,请转到 AD RMS 全局管理网页,查看 “信任策略 ”页,然后单击“ 信任 Passport NIC”。 可以在单个颁发许可证中混合使用 Windows 和 Passport 用户。
如果要在电子邮件通讯组列表 ((例如) ) marketing@contoso.com 下为一组人员创建颁发许可证,请将完全限定的通讯组列表名称插入 wszUserName 中,并将 wszUserId 留空。 获取使用许可证时,服务器将展开通讯组列表。 请注意,如果通讯组列表中包含多个嵌套通讯组列表,这可能会导致性能滞后。
调用 DRMClosePubHandle 以关闭通过调用此函数创建的用户对象的句柄。
要求
| 目标平台 | Windows |
| 标头 | msdrm.h |
| Library | Msdrm.lib |
| DLL | Msdrm.dll |