Metodo INapSystemHealthValidator::Validate
Nota
La piattaforma Protezione accesso alla rete non è disponibile a partire da Windows 10
Il metodo INapSystemHealthValidator::Validate viene definito dallo sviluppatore SHV e chiamato dal sistema NAP per convalidare la richiesta SoHRequest ricevuta da un client.
Sintassi
HRESULT Validate(
[in] INapSystemHealthValidationRequest *request,
[in] UINT32 hintTimeOutInMsec,
[in] INapServerCallback *callback
);
Parametri
-
richiesta [in]
-
Puntatore COM a un oggetto INapSystemHealthValidationRequest che identifica l'oggetto richiesta di convalida.
-
hintTimeOutInMsec [in]
-
Durata, in millisecondi, del periodo di timeout della comunicazione. Il validator di integrità del sistema (SHV) deve rispondere entro questo periodo di tempo; in caso contrario, la risposta viene eliminata.
Nota
Il timeout predefinito per tutti gli SHV è di 2000 millisecondi. L'uso di un valore diverso da quello predefinito modificherà il timeout per tutti gli SHV registrati.
-
callback [in]
-
Puntatore all'oggetto di callback INapServerCallback. Questo puntatore di callback viene usato dagli SHV quando restituiscono E_PENDING dalla chiamata a INapSystemHealthValidator::Validate. Viene usato per la convalida asincrona. È previsto che gli SHV rispondano entro il tempo hintTimeOutInMsec . In caso contrario, la risposta verrà eliminata.
Valore restituito
Se viene restituito un altro codice di errore, il sistema presuppone che si sia verificato un errore serverComponent e che il mapping appropriato venga eseguito per il passaggio/esito negativo.
Codice restituito | Descrizione |
---|---|
|
Indica che il validator ha impostato un oggetto SoHResponse sull'oggetto 'request'. |
|
Indica che OnComplete() verrà chiamato in un thread separato. |
|
Indica che il processo SHV (System Health Validator) è terminato senza che NapServer rilasci effettivamente un riferimento. NapServer tenterà di ricreare un nuovo riferimento a SHV e riesecherà la chiamata Validate una sola volta. Se la creazione dell'oggetto o la convalida riese eseguita ha esito negativo, l'SHV viene rimosso dall'elenco di caricati SHV. L'unico modo in cui questo SHV può ora essere ricaricato è annullare la registrazione e registrare nuovamente il file SHV o quando NapServer viene riavviato |
Commenti
Per supportare il rilevamento delle intrusioni, agli SHV verrà chiesto di convalidare il computer client indipendentemente dal fatto che il client abbia inviato un Oggetto SoHRequest destinato a SHV.
L'SHV deve eseguire le operazioni seguenti:
- Recuperare l'oggetto SoHRequest dalla richiesta chiamando la richiesta. GetSoHRequest().
- Se il pacchetto SoHRequest è Null:
- Se SHV è un sistema di rilevamento delle intrusioni, popolare un pacchetto SoHRequest con il codice di errore di Protezione accesso alla rete appropriato per il motivo per cui il computer client è dannoso.
- Tutti gli altri SHV devono popolare un pacchetto SoHRequest con un codice di errore di NAP_E_MISSING_SOH.
- Se napSystemGenerated è TRUE dalla chiamata alla richiesta. GetSoHRequest(), SHV deve prevedere un pacchetto SoH con i 3 VTL seguenti: sohAttributeTypeSystemHealthId, sohAttributeTypeFailureCategory, sohAttributeTypeErrorCodes. Questa richiesta SoHRequest viene generata da NapAgent per conto dell'agente di integrità del sistema (SHA) perché si è verificato un errore nel recupero di un pacchetto di richiesta da SHA.
- Convalidare il pacchetto SoHRequest .
- Se soHRequest non è valido, costruire un pacchetto SoHResponse con codice di errore NAP_E_INVALID_PACKET.
- Se SHV usa solo informazioni memorizzate nella cache per convalidare il pacchetto SoHRequest (ovvero nessun I/O viene eseguito), può costruire soHResponse, impostarlo sull'oggetto nella richiesta e restituire S_OK.
- Se SHV esegue operazioni di I/O per comunicare con i server back-end per convalidare l'integrità del client, deve accodare l'I/O e restituire questa funzione con E_PENDING. In questo caso, il servizio SHV deve chiamare il callback. OnComplete() in un thread separato entro il periodo di timeout , hintTimeOutInMsec. In caso contrario, la risposta SHV verrà eliminata.
- Non restituire altri errori diversi da quelli elencati in precedenza. Se un altro codice di errore viene restituito da SHV (ad esempio, un errore di sistema), il pacchetto verrà eliminato.
Un SHV deve restituire un sohAttributeTypeComplianceResultCodes o sohAttributeTypeFailureCategory TLV nella relativa soHRequest.
- sohAttributeTypeComplianceResultCodes TLV: se il file SHV potrebbe convalidare l'integrità del client (ad esempio integro o non integro), viene restituito questo TLV.
- sohAttributeTypeFailureCategory TLV: se si è verificato un errore di comunicazione o componente nel client o nel server, deve essere indicato da questo TLV. Questo TLV verrà mappato ulteriormente a integro o non integro a seconda della configurazione di SHV. Per altre informazioni, vedere l'interfaccia INapServerManagement e la struttura FailureCategoryMapping .
L'SHV non deve contenere riferimenti alla richiesta o al callback al termine della chiamata asincrona.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Nessuno supportato |
Server minimo supportato |
Windows Server 2008 [solo app desktop] |
Intestazione |
|
IDL |
|