<behaviorExtensions><behaviorExtensions>

Le estensioni di comportamento consentono all'utente di creare elementi di comportamento definiti dall'utente.Behavior extensions enable the user to create user-defined behavior elements. Questi elementi possono essere usati insieme agli elementi di comportamento standard di Windows Communication Foundation (WCF).These elements can be used alongside the standard Windows Communication Foundation (WCF) behavior elements. Nella sezione behaviorExtensions l'elemento viene definito in modo tale che possa essere usato nella configurazione.The behaviorExtensions section defines the element such that it can be used in configuration. Di seguito viene fornito l'esempio di una tipica estensione di comportamento.Here is an example of a typical behavior extension.

<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.To add configuration abilities to the element, you need to write and register a configuration element. Per altre informazioni a tal proposito, vedere la documentazione di System.Configuration.For more information on this, see the System.Configuration documentation.

Dopo che l'elemento e il relativo tipo di configurazione sono stati definiti, è possibile usare l'estensione come illustrato nell'esempio seguente.After the element and its configuration type are defined, the extension can be used, as shown in the following example.

<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>  

SicurezzaSecurity

È consigliato fortemente l'uso di nomi di assembly completi per la registrazione di tipi nei file machine.config e app.config.It is strongly recommended that you use fully qualified assembly names when registering types in the machine.config and app.config files. Se il tipo non è definito in modo univoco, il caricatore dei tipi CLR lo cerca nei percorsi seguenti nell'ordine specificato:If the type is not uniquely defined, the CLR type loader searches for it in the following locations in the specified order:

Se l'assembly del tipo è conosciuto, il caricatore esegue una ricerca nei percorsi di reindirizzamento del file di configurazione, in GAC, nell'assembly corrente usando le informazioni di configurazione e la directory base dell'applicazione.If the assembly of the type is known, the loader searches the configuration file's redirect locations, GAC, the current assembly using configuration information, and the application base directory. Se l'assembly è sconosciuto, il caricatore esegue una ricerca nell'assembly corrente, in mscorlib e nel percorso restituito dal gestore eventi TypeResolve.If the assembly is unknown, the loader searches the current assembly, mscorlib, and the location returned by the TypeResolve event handler. Questo ordine di ricerca CLR può essere modificato con hook quali il meccanismo di inoltro dei tipi e l'evento AppDomain.TypeResolve.This CLR search order can be modified with hooks such as the Type Forwarding mechanism and the AppDomain.TypeResolve event.

Un autore di un attacco può sfruttare l'ordine di ricerca CLR ed eseguire codice non autorizzato.An attacker can exploit the CLR search order and execute unauthorized code. L'uso di nomi univoci completi (sicuri) identifica un tipo e aumenta ulteriormente la sicurezza del sistema.Using fully qualified (strong) names uniquely identifies a type and further increases security of your system.

Per ulteriori informazioni, vedere come il Runtime individua gli assembly e TypeResolve.For more information, see How the Runtime Locates Assemblies and TypeResolve.

Vedere ancheSee Also

BehaviorExtensionElement
Configurazione ed estensione del runtime con i comportamentiConfiguring and Extending the Runtime with Behaviors