Procedura: controllare gli eventi di protezione di Windows Communication Foundation

Windows Communication Foundation (WCF) consente di registrarsi eventi di protezione nel registro eventi di Windows, che può essere visualizzato utilizzando il Visualizzatore eventi di Windows. In questo argomento viene illustrato come impostare un'applicazione in modo che registri eventi di protezione. Per ulteriori informazioni sul controllo di WCF, vedere Controllo degli eventi di protezione.

Per controllare gli eventi di protezione nel codice

  1. Specificare il percorso del registro di controllo. A questo scopo, impostare la proprietà AuditLogLocation della classe ServiceSecurityAuditBehavior su uno dei valori dell'enumerazione AuditLogLocation, come illustrato nel codice seguente.

    L'enumerazione AuditLogLocation ha tre valori: Application, Security o Default. Il valore specifica uno dei log visibili nel Visualizzatore eventi, il registro protezione o il registro applicazioni. Se si utilizza il valore Default, il log effettivo dipenderà dal sistema operativo su cui è in esecuzione l'applicazione. Se il controllo è attivato e il percorso del log non viene specificato, verrà utilizzato, per impostazione predefinita, il registro Security, per le piattaforme che supportano la scrittura nel registro protezione, altrimenti verrà utilizzato il registro Application. Solo Windows Server 2003 e Windows Vista supportano la scrittura nel registro protezione per impostazione predefinita.

  2. Impostare i tipi di eventi da controllare. È possibile controllare simultaneamente eventi a livello di servizio o eventi di autorizzazione a livello di messaggio. A questo scopo, impostare la proprietà ServiceAuthorizationAuditLevel o MessageAuthenticationAuditLevel su uno dei valori dell'enumerazione AuditLevel, come illustrato nel codice seguente.

  3. Specificare se esporre o meno gli errori all'applicazione relativamente agli eventi di controllo del log. Impostare la proprietà SuppressAuditFailure su true o false, come illustrato nel codice seguente.

    La proprietà SuppressAuditFailure predefinita è true, in modo che l'errore da controllare non influenzi l'applicazione. In caso contrario, viene generata un'eccezione. Per ogni controllo riuscito viene scritta una traccia dettagliata. Per ogni errore da controllare, la traccia viene scritta a livello errore.

  4. Eliminare la classe ServiceSecurityAuditBehavior esistente dall'insieme dei comportamenti trovati nella descrizione di una classe ServiceHost. L'insieme dei comportamenti è accessibile tramite la proprietà Behaviors, che a sua volta è accessibile dalla proprietà Description. Aggiungere quindi la nuova classe ServiceSecurityAuditBehavior allo stesso insieme, come illustrato nel codice seguente.

Per impostare il controllo nella configurazione

  1. Per configurare il controllo nella configurazione, aggiungere l'elemento <behavior> alla sezione Behaviors element del file web.config. Aggiungere quindi un elemento serviceSecurityAudit e impostare i vari attributi, come illustrato nell'esempio seguente.

    <behaviors>
       <behavior name="myAuditBehavior">
          <serviceSecurityAudit auditLogLocation="Application"
                suppressAuditFailure="false" 
                serviceAuthorizationAuditLevel="None" 
                messageAuthenticationAuditLevel="SuccessOrFailure" />
          </behavior>
    </behaviors>
    
  2. È necessario specificare il comportamento del servizio, come illustrato nell'esempio seguente.

    <services>
        <service type="WCS.Samples.Service.Echo" 
        behaviorConfiguration=" myAuditBehavior">
           <endpoint address=""
                    binding="wsHttpBinding"
                    bindingConfiguration="CertificateDefault" 
                    contract="WCS.Samples.Service.IEcho" />
        </service>
    </services>
    

Esempio

Nel codice seguente viene creata un'istanza della classe ServiceHost class e viene aggiunta una nuova classe ServiceSecurityAuditBehavior all'insieme dei comportamenti.

Protezione

Se si imposta la proprietà SuppressAuditFailure su true, viene evitata la visualizzazione di qualsiasi errore per generare controlli di protezione (se la proprietà viene impostata su false, viene generata un'eccezione). Tuttavia, se si abilita la proprietà Impostazioni di protezione locali di Windows seguente, un errore per generare eventi di controllo causerà l'arresto immediato di Windows:

Controllo: arresto del sistema immediato se non è possibile registrare i controlli di protezione

Per impostare la proprietà, aprire la finestra di dialogo Impostazioni protezione locale. In Impostazioni di protezione fare clic su Criteri locali. Quindi fare clic su Opzioni di protezione.

Se la proprietà AuditLogLocation è impostata su Security e se nei Criteri di protezione locali non è stata impostata l'opzione Controlla accesso agli oggetti, gli eventi di controllo non vengono scritti nel registro protezione. Si noti che non viene restituito alcun errore, ma non vengono scritte voci di controllo nel registro protezione.

Vedere anche

Riferimenti

AuditLogLocation
ServiceSecurityAuditBehavior
AuditLogLocation

Concetti

Controllo degli eventi di protezione