iOpcSignatureReference 接口 (msopc.h)

表示对已签名或将要签名的 XML 标记的引用。 生成签名时,此引用的 XML 标记在签名标记中序列化。

继承

IOpcSignatureReference 接口继承自 IUnknown 接口。 IOpcSignatureReference 还具有以下类型的成员:

方法

IOpcSignatureReference 接口包含以下方法。

 
IOpcSignatureReference::GetDigestMethod

获取对引用的 XML 元素使用(对 元素进行签名时)的摘要方法。
IOpcSignatureReference::GetDigestValue

获取对元素进行签名时为引用的 XML 元素计算的摘要值。
IOpcSignatureReference::GetId

获取引用的标识符。
IOpcSignatureReference::GetTransformMethod

获取对引用的 XML 元素使用(对元素进行签名)的规范化方法。
IOpcSignatureReference::GetType

获取一个字符串,该字符串指示引用的 XML 元素的类型。
IOpcSignatureReference::GetUri

获取引用的 XML 元素的 URI。

注解

若要创建 IOpcSignatureReference 接口指针,请调用 IOpcSignatureReferenceSet::Create 方法。 IOpcSignatureReferenceSet::Create 不创建对包特定 Object 元素的引用;生成签名时,会自动创建引用。

若要访问 IOpcSignatureReference 接口指针,请调用 IOpcSignatureReferenceEnumerator::GetCurrent 方法。 IOpcSignatureReferenceEnumerator::GetCurrent 不访问对包特定 Object 元素的引用;调用 IOpcDigitalSignature::GetPackageObjectReference 方法来访问该引用。

接口提供访问有关引用本身和引用的 XML 元素的信息的方法。 引用的元素可以是包特定的 Object 元素、特定于应用程序的 Object 元素或特定于应用程序的 Object 的子元素。

生成签名时,此引用信息将在签名 (签名标记) 的 XML 标记中序列化。 在签名标记中,信息由 Reference 元素表示,该元素的 URI 属性值设置为“#”,后跟被引用元素的 Id 属性值。 例如,如果引用元素的 Id 属性为“Application”,则 Reference 元素的 URI 属性设置为“#Application”,如以下标记所示。

以下签名标记显示了对已签名的特定于应用程序的 Object 元素的序列化引用。

<Signature Id="SignatureId" xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
        [...]
        <Reference URI="#idPackageObject" ...>
            [...]
        </Reference>
        <!-- This reference indicates that the application-specific
        Object element was signed when the signature was generated.-->
        <Reference URI="#Application" ...>
            [...]
        </Reference>
    </SignedInfo>
    [...]
    <Object Id="idPackageObject" ...>
        [...]
    </Object>
    <!-- This application-specific <Object> element was signed when the
    signature was generated. -->
    <Object Id="Application">
        [...]
    </Object>
</Signature>

以下签名标记显示对特定于应用程序的 Object 元素的已签名子元素的序列化引用。

注意 可以引用特定于应用程序的 对象的 多个子元素进行签名。

 
<Signature Id="SignatureId" xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
        [...]
        <Reference URI="#idPackageObject" ...>
            [...]
        </Reference>
        <!-- This reference indicates that MyElement in the application
        -specific Object element was signed when the signature was
        generated. -->
        <Reference URI="#MyElementId" ...>
            [...]
        </Reference>
    </SignedInfo>
    [...]
    <Object Id="idPackageObject" ...>
        [...]
    </Object>
    <Object Id="Application">
        [...]
            <!-- This element is signed. -->
            <MyElement Id="MyElementId">
                [...]
            </MyElement>
        [...]
    </Object>
</Signature>

要求

   
最低受支持的客户端 Windows 7 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 msopc.h

请参阅

核心打包接口

数字签名概述

使用打包 API 入门

IOpcDigitalSignature

IOpcSignatureReferenceEnumerator

IOpcSignatureReferenceSet

OPC_CANONICALIZATION_METHOD

概述

打包 API 编程指南

打包 API 参考

打包 API 示例

打包数字签名接口

打包接口

引用