SignEvent-objektet
Et hendelsesobjekt som brukes under OnSign-hendelsen.
Merknader
Obs! Denne objektmodellen støttes ikke når alternativet Deaktiver funksjoner fra oppdateringspakke under Avansert-kategorien i Alternativer-dialogboksen i InfoPath er valgt, eller når Microsoft Office 2003 Service Pack 1 eller senere ikke er installert. Skjemaer som implementerer dette objektmodellmedlemmet i kode, vil generere en feilmelding hvis de åpnes i InfoPath nå oppdateringspakkefunksjoner er deaktivert eller ikke er tilgjengelige.
Bruke SignEvent-objektet
Bruk SignedDataBlock-egenskapen for SignEventObject-objektet til å fastsette hvilken signert datablokk som utløser OnSign-hendelsen. OnSign-hendelsen utløses kun for en fullstendig klarert skjemamal.
Eksempel
I eksempelet nedenfor brukes SignEvent-objektet til å legge til en signatur og et tidsstempel i et SignedDataBlock-objekt:
[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;
}