SignEventObject 接口
在 OnSign 事件期间使用的一个事件对象。
命名空间: Microsoft.Office.Interop.InfoPath.SemiTrust
程序集: Microsoft.Office.Interop.InfoPath.SemiTrust(位于 Microsoft.Office.Interop.InfoPath.SemiTrust.dll 中)
语法
声明
<GuidAttribute("096cd71d-0786-11d1-95fa-0080c78ee3bb")> _
Public Interface SignEventObject _
Inherits SignEvent, DocReturnEvent, DocEvent
用法
Dim instance As SignEventObject
[GuidAttribute("096cd71d-0786-11d1-95fa-0080c78ee3bb")]
public interface SignEventObject : SignEvent,
DocReturnEvent, DocEvent
备注
此类型是用于 Coclass(托管代码需要此 Coclass 来实现 COM 互操作性)的包装。使用此类型来访问由此 Coclass 实现的 COM 接口。有关 COM 接口的信息(包括指向其成员说明的链接),请参阅SignEvent.
使用 SignedDataBlockObject 对象的 SignedDataBlock 属性确定由哪一组可签名的数据触发 OnSign 事件。该 OnSign 事件仅能在完全信任的表单模板中进行自定义。
示例
在以下示例中,SignEvent 对象用于向 SignedDataBlockObject 对象添加签名和时间戳:
[InfoPathEventHandler(EventType=InfoPathEventType.OnSign)]
public void OnSign(SignEvent e)
{
Signature signature = e.SignedDataBlock.Signatures.Create();
signature.Sign();
// Countersign the signature with a trusted timestamp.
// Get the XML node storing the signature block.
IXMLDOMNode oNodeSig = signature.SignatureBlockXmlNode;
IXMLDOMNode oNodeSigValue = oNodeSig.selectSingleNode(".//*[local-name(.)=’signatureValue’]");
// Get time stamp from timestamp service (fictitious).
MyTrustedTimeStampingService s = new MyTrustedTimeStampingService();
string strVerifiedTimeStamp = s.AddTimeStamp(oNodeSigValue.text);
//Add the value returned from the timestamping service to the
//unsigned part of the signature block.
IXMLDOMNode oNodeObj = oNodeSig.selectSingleNode(".//*[local-name(.)=’Object’]");
IXMLDOMNode oNode = oNodeObj.cloneNode(false);
oNode.text = strVerifiedTimeStamp;
oNodeObj.parentNode.appendChild(oNode);
e.ReturnStatus = true;
}