SignEvent-objektet

Microsoft Office InfoPath

Vis alt Vis alt

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;
}