Condividi tramite


<behaviorExtensions>

Le estensioni di comportamento consentono all'utente di creare elementi di comportamento definiti dall'utente. Questi elementi possono essere utilizzati insieme agli elementi di comportamento standard di Windows Communication Foundation (WCF). Nella sezione behaviorExtensions l'elemento viene definito in modo tale che possa essere utilizzato nella configurazione. Di seguito viene fornito l'esempio di una tipica estensione di comportamento.

<system.serviceModel>
    <extensions>
        <behaviorExtensions>
            <add name="myBehavior" type="Microsoft.ServiceModel.Samples.MyBehaviorSection, MyBehavior,
                Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
       </behaviorExtensions>
    </extensions>
</system.serviceModel>

Per aggiungere capacità di configurazione all'elemento è necessario scrivere e registrare un elemento di configurazione. Per ulteriori informazioni a tal proposito, vedere la documentazione di System.Configuration.

Dopo che l'elemento e il relativo tipo di configurazione sono stati definiti, è possibile utilizzare l'estensione come illustrato nell'esempio seguente.

<behaviors>
    <behavior configurationName="testChannelBehavior">
        <myBehavior />
        <channelSecurity cacheCookies="false" detectReplays="false" maxCachedNonces="9"
            maxClockSkew="00:00:03" maxCookieCachingTime="00:07:24" replayWindow="00:07:22.2190000" />
    </behavior>
</behaviors>

Protezione

È consigliato fortemente l'utilizzo di nomi di assembly completi per la registrazione di tipi nei file machine.config e app.config. Se il tipo non è definito in modo univoco, il caricatore dei tipi CLR lo cerca nei percorsi seguenti nell'ordine specificato:

Se l'assembly del tipo è conosciuto, il caricatore esegue una ricerca nei percorsi di reindirizzamento del file di configurazione, in GAC, nell'assembly corrente utilizzando le informazioni di configurazione e la directory base dell'applicazione. Se l'assembly è sconosciuto, il caricatore esegue una ricerca nell'assembly corrente, in mscorlib e nel percorso restituito dal gestore eventi TypeResolve. Questo ordine di ricerca CLR può essere modificato con hook quali il meccanismo di inoltro dei tipi e l'evento AppDomain.TypeResolve.

Un autore di un attacco può sfruttare l'ordine di ricerca CLR ed eseguire codice non autorizzato. L'utilizzo di nomi univoci completi (sicuri) identifica un tipo e aumenta ulteriormente la protezione del sistema.

Per ulteriori informazioni, vedere Modalità di individuazione di assembly del runtime e TypeResolve.

Vedere anche

Riferimenti

BehaviorExtensionElement

Altre risorse

Attaching Extensions Using Behaviors