Implementare ExecutionStateImplement ExecutionState

Il passaggio di informazioni a Microsoft Information Protection SDK per calcolare un'azione che deve essere usata, in base allo stato corrente e allo stato desiderato, viene implementato usando la classe mip::ExecutionState.Passing information into the MIP SDK to compute an action that should be taken, based on the current state and desired state, is implemented via the mip::ExecutionState class. Analogamente ad altre classi nell'SDK, ExecutionState è una classe astratta e deve essere implementata dallo sviluppatore.Like other classes in the SDK, the ExecutionState is an abstract class and must be implemented by the developer.

Per un esempio completo di implementazione di ExecutionState, esaminare l'origine di esempio seguente:For a complete example of an ExecutionState implementation, review the following sample source:

mip::ExecutionState Membersmip::ExecutionState Members

ExecutionState espone i membri virtuali seguenti.ExecutionState exposes the following virtual members. Ognuno di essi specifica un contesto per il motore dei criteri per restituire le informazioni sulle azioni che devono essere eseguite dall'applicazione.Each provides some context to the policy engine to return information on which actions ought to be taken by the application. Inoltre, queste informazioni possono essere usate per specificare informazioni di controllo per la funzionalità di reporting di Azure Information Protection.Additionally, this information may be used to provide audit information to the Azure Information Protection Reporting feature.

MembroMember RestituisceReturns
std::shared_ptr<mip::Label> GetNewLabel() Restituisce l'etichetta da applicare all'oggetto.Returns the label to be applied to the object.
mip::DataState GetDataState() Restituisce il MIP::D ataState dell'oggetto.Returns the mip::DataState of the object.
std::pair<bool, std::string> IsDowngradeJustified() Restituisce un std::pair che esprime se il downgrade è giustificato e la giustificazione.Returns a std::pair expressing whether downgrade is justified and the justification.
std::string GetContentIdentifier() Restituisce l'identificatore del contenuto.Returns the content identifier. Deve essere un identificatore leggibile dall'utente, che indica la posizione dell'oggetto.Should be a human-readable identifier, indicating the location of the object.
mip::ActionSource GetNewLabelActionSource() Restituisce il mip::ActionSource dell'etichetta.Returns the mip::ActionSource of the label.
mip::AssignmentMethod GetNewLabelAssignmentMethod() Restituisce il mip::AssignmentMethod dell'etichettaReturns the mip::AssignmentMethod of the label
std::vector<std::pair<std::string, std::string>> GetNewLabelExtendedProperties() Restituisce un std::vector di std::pairs di stringa contenente i metadati personalizzati che verranno applicati al documento.Returns a std::vector of std::pairs of strings, containing the custom metadata that will be applied to the document.
std::vector<std::pair<std::string, std::string>> GetContentMetadata() Restituisce un std::vector di std::pairs di stringa contenente i metadati di contenuto correnti.Returns a std::vector of std::pairs of string containing the current content metadata.
std::shared_ptr<mip::ProtectionDescriptor> GetProtectionDescriptor() Restituisce un puntatore a un mip::ProtectionDescriptorReturns a pointer to a mip::ProtectionDescriptor
std::string GetContentFormat() Restituisce una stringaReturns string
mip::ActionType GetSupportedActions() Restituisce mip::ActionTypes per l'etichetta.Returns mip::ActionTypes for the label.
std::shared_ptr<mip::ClassificationResults> Restituisce un elenco di risultati di classificazione, se implementato.Returns a list of classification results, if implemented.

Ogni elemento deve essere sottoposto a override in un'implementazione di una classe derivata da mip::ExecutionState.Each must be overridden in an implementation of a class derived from mip::ExecutionState. Nell'applicazione di esempio a cui fa riferimento il collegamento precedente questo processo viene eseguito implementando uno struct chiamato ExecutionStateOptions e passandolo al costruttore della classe derivata.In the sample application linked above, this process is accomplished by implementing a struct called ExecutionStateOptions, and passing that to the constructor of the derived class.

Nell'esempio uno struct chiamato ExecutionStateOptions viene definito come:In the example, a struct called ExecutionStateOptions is defined as:

struct ExecutionStateOptions {
    std::unordered_map<std::string, std::string> metadata;
    std::string newLabelId;
    std::string contentIdentifier;
    mip::ActionSource actionSource = mip::ActionSource::MANUAL;
    mip::DataState dataState = mip::DataState::USE;
    mip::AssignmentMethod assignmentMethod = mip::AssignmentMethod::STANDARD;
    bool isDowngradeJustified = false;
    std::string downgradeJustification;
    std::string templateId;
    std::string contentFormat = mip::GetFileContentFormat();
    mip::ActionType supportedActions;
    bool generateAuditEvent;
};

Ogni proprietà viene impostata dall'applicazione, quindi ExecutionStateOptions viene passato al costruttore della classe derivata da mip::ExecutionState.Each property is set by the application, then ExecutionStateOptions is passed to the constructor of the class derived from mip::ExecutionState. Queste informazioni vengono usate per determinare le azioni da eseguire.This information is used to determine the actions to take. I dati disponibili in mip::ExecutionState vengono esposti anche nell'analitica di Azure Information Protection.Data provided in the mip::ExecutionState will also surface in Azure Information Protection Analytics.

Passaggi successiviNext Steps