I_IrmProtector.HrProtect 方法

上次修改时间: 2009年10月7日

适用范围: SharePoint Foundation 2010

生成指定的未受保护的文件的权限管理版本。

HRESULT HrProtect(
    ILockBytes       *pilbInput,
    ILockBytes       *pilbOutput,
    I_IrmPolicyInfo    *piid,
    DWORD            *pdwStatus
) PURE;

参数

pilbInput

[输入] 未受保护的文件。

pilbOutput

[输出] 信息权限管理 (IRM) 保护程序从指定的未受保护的文件生成的权限管理流。

piid

[输入] 指向有关要保护的文件的数据和用户请求的数据的链接。

pdwStatus

[输入] 方法调用的状态。可能的值包括:

MSOIPI_STATUS_UNKNOWN

方法的结果无法确定。

MSOIPI_STATUS_PROTECT_SUCCESS

保护程序已成功生成受保护的文件流。

MSOIPI_STATUS_ALREADY_PROTECTED

文件已受 IRM 保护。

MSOIPI_STATUS_CANT_PROTECT

保护程序的一般性失败。

MSOIPI_STATUS_NOT_MY_FILE

指定的文件不是与此 IRM 保护程序关联的文件类型。

MSOIPI_STATUS_FILE_CORRUPT

指定的文件已损坏。

MSOIPI_STATUS_WSS_IRM_FAILED

保护程序无法访问其权限管理平台。

MSOIPI_STATUS_BAD_INSTALL

保护程序未正确安装。

返回值

保护程序方法返回典型的 HRESULT 值。一般来说,在成功时,保护程序应返回一个正的 OK 值;在失败时,应返回一个负的 FAIL 值。

备注

I_IrmProtector 接口由集成和自治的 IRM 保护程序实现。有关集成的和自治的保护程序的详细信息,请参阅自定义 IRM 保护程序

对于集成的 IRM 保护程序:

集成保护程序无需实现此方法。如果调用此方法,则集成保护程序应返回 HRESULT E_NOTIMPL。

对于自治的 IRM 保护程序:

此方法采用一个表示 IRM 保护程序可以理解的类型的未受保护的文件的数据流,然后生成表示该文件的受保护的版本的相应数据流。对于自治保护程序,必须实现 I_IrmProtector.HrProtect 方法 方法,以便该保护程序配置和执行整个权限管理过程。

将 SharePoint Foundation 传递的 I_IrmPolicyInfo 类 对象用作 piid 参数,可以访问以下信息:

  • 请求的文件所在的文档库的 GUID 和 URL。

  • 请求文件的用户的电子邮件地址和指定用户具有的对文件的权限的权限掩码。

  • 文档库的 IRM 策略的标题和说明。

  • 用户应具有的对文件的访问权的天数。

自治保护程序负责将此数据转换为 IRM 感知客户端应用程序可使用的事物。

一般来说,应实现自治保护程序的 I_IrmProtector.HrProtect 方法 方法,以便此保护程序完成以下任务:

  • 加密请求的文件的敏感部分。

  • 向请求文件的用户授予权限管理文件的正确权限。

  • 为 SharePoint Foundation 服务器或此自治保护程序的 I_IrmProtector.HrUnprotect 方法 方法可访问的另一个用户提供对权限管理文件的完全控制。

  • 将文档库 GUID 添加到文件的权限元数据。

  • 将其他权限元数据(如策略标题和说明)添加到文件(如果适当)。

  • 返回 pwdStatus 参数中适当的状态值。

文件类型开发人员必须决定将这些数据组件存储在文件中的哪个位置以及如何在文件中存储这些数据组件。不过,IRM 保护程序应与用于查看和编辑此文件类型的文件的客户端应用程序一致。

受保护的流还可以包含一条警告消息,此消息与保护程序的文件类型的客户端查看器的早期版本向后兼容。

请参阅

引用

I_IrmProtector 接口

I_IrmPolicyInfoRMS 类

I_IrmPolicyInfo 类

概念

SharePoint Foundation 中的信息权限管理

自定义 IRM 保护程序