Condividi tramite


Metodo IOpcSignatureRelationshipReferenceSet::Create (msopc.h)

Crea un puntatore all'interfaccia IOpcSignatureRelationshipReference che rappresenta un riferimento a una parte Relazioni e aggiunge il nuovo puntatore di interfaccia al set. Per la firma vengono selezionati tutti o un subset delle relazioni archiviate nella parte Relazioni a cui fare riferimento.

Sintassi

HRESULT Create(
  [in]          IOpcUri                            *sourceUri,
  [in]          LPCWSTR                            digestMethod,
  [in]          OPC_RELATIONSHIPS_SIGNING_OPTION   relationshipSigningOption,
  [in]          IOpcRelationshipSelectorSet        *selectorSet,
  [in]          OPC_CANONICALIZATION_METHOD        transformMethod,
  [out, retval] IOpcSignatureRelationshipReference **relationshipReference
);

Parametri

[in] sourceUri

Puntatore all'interfaccia IOpcUri che rappresenta l'URI di origine delle relazioni da selezionare per la firma.

[in] digestMethod

Metodo digest da utilizzare per la selezione delle relazioni. Per usare il metodo digest predefinito, passare NULL in questo parametro.

Importante Il metodo digest predefinito deve essere impostato chiamando il metodo IOpcSigningOptions::SetDefaultDigestMethod prima che venga chiamato IOpcDigitalSignatureManager::Sign .
 

[in] relationshipSigningOption

Valore che indica se le relazioni selezionate per la firma includono tutti o un subset delle relazioni nella parte Relazioni a cui fare riferimento.

Per informazioni sull'effetto dei valori relationshipSigningOption su altri parametri, vedere Osservazioni.

[in] selectorSet

Puntatore all'interfaccia IOpcRelationshipSelectorSet che può essere utilizzato per identificare un subset di relazioni nella parte Relazioni da selezionare per la firma.

Se relationshipSigningOption è impostato su OPC_RELATIONSHIP_SIGN_PART, selectorSet è NULL.

Per informazioni sui valori selectorSet , vedere Osservazioni.

[in] transformMethod

Valore che descrive il metodo di canonizzazione da applicare al markup della relazione delle relazioni selezionate.

Se relationshipSigningOption è impostato OPC_RELATIONSHIP_SIGN_USING_SELECTORS, il valore di transformMethod viene ignorato .

Per altre informazioni sui metodi di trasformazione da applicare quando relationshipSigningOption è impostato su OPC_RELATIONSHIP_SIGN_USING_SELECTORS, vedere Osservazioni.

[out, retval] relationshipReference

Nuovo puntatore all'interfaccia IOpcSignatureRelationshipReference che rappresenta la parte Relazioni a cui si fa riferimento.

Valore restituito

Il metodo restituisce un valore HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
E_INVALIDARG
Il valore passato nel parametro relationshipSigningOption non è un valore di enumerazione OPC_RELATIONSHIPS_SIGNING_OPTION valido.
E_INVALIDARG
Il valore passato nel parametro transformMethod non è un valore di enumerazione valido OPC_CANONICALIZATION_METHOD .
E_POINTER
Il parametro sourceUri è NULL.
E_UNEXPECTED
Il parametro selectorSet non viene passato NULL mentre il parametro relationshipSigningOption viene passato un valore di OPC_RELATIONSHIP_SIGN_PART.

Commenti

Questo metodo crea un riferimento a una parte Relazioni. È possibile firmare tutti o un subset delle relazioni archiviate in una parte Relazioni a cui si fa riferimento quando viene generata la firma.

Per firmare tutte le relazioni in una parte Relazioni, chiamare questo metodo con il valore del parametro relationshipSigningOption impostato su OPC_RELATIONSHIP_SIGN_PART e il valore del parametro selectorSet impostato su NULL.

Per firmare un subset delle relazioni in una parte Relazioni, chiamare questo metodo con il valore del parametro relationshipSigningOption impostato su OPC_RELATIONSHIP_SIGN_USING_SELECTORS e il valore del parametro selectorSet impostato su un puntatore all'interfaccia IOpcRelationshipSelectorSet . Per creare un puntatore all'interfaccia IOpcRelationshipSelectorSet , chiamare il metodo CreateRelationshipSelectorSet .

Nella tabella seguente vengono riepilogati i valori dei parametri richiesti da questo metodo per creare un riferimento che indica se tutte le relazioni o un subset delle relazioni (archiviate nella parte Relazioni a cui fare riferimento) devono essere firmate.

Descrizione relationshipSigningOption Valore SelectorSet Valore
Firmare tutte le relazioni nella parte Relazioni OPC_RELATIONSHIP_SIGN_PART NULL
Firmare un subset delle relazioni nella parte Relazioni OPC_RELATIONSHIP_SIGN_USING_SELECTORS Puntatore all'interfaccia IOpcRelationshipSelectorSet
 

Se un subset di relazioni deve essere firmato, il metodo di trasformazione specificato viene ignorato. Al contrario, quando viene generata la firma, la prima trasformazione applicata è La trasformazione Relazioni e la seconda è il OPC_CANONICALIZATION_C14N metodo di canonizzazione.

Quando viene creato un puntatore all'interfaccia IOpcSignatureRelationshipReference e aggiunto al set, il riferimento rappresentato viene salvato quando il pacchetto viene salvato.

Le relazioni che non verranno firmate possono essere rimosse, modificate o aggiunte al pacchetto senza invalidare la firma. Se è stato selezionato un subset di relazioni per la firma e il subset viene modificato, la firma verrà invalidata.

Importante È possibile modificare un subset selezionato se il tipo di relazione di una relazione aggiunta o modificata in una parte Relazioni a cui si fa riferimento corrisponde a un tipo di relazione utilizzato per selezionare una o più relazioni nel subset.
 

Thread safety

I pacchetti degli oggetti non sono thread-safe.

Per altre informazioni, vedere l'Introduzione con l'API per la creazione di pacchetti.

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione msopc.h

Vedi anche

Interfacce di creazione di pacchetti principali

Introduzione con l'API per la creazione di pacchetti

IOpcDigitalSignatureManager

IOpcSignatureRelationshipReferenceSet

IOpcSigningOptions

OPC_CANONICALIZATION_METHOD

OPC_RELATIONSHIPS_SIGNING_OPTION

Cenni preliminari

Guida alla programmazione dell'API per la creazione di pacchetti

Informazioni di riferimento sulle API per la creazione di pacchetti

Esempi di API per la creazione di pacchetti

Creazione di pacchetti di interfacce di firma digitale

Interfacce di creazione di pacchetti

Riferimento