Partilhar via


<behaviorExtensions>

As extensões de comportamento permitem ao utilizador criar elementos de comportamento definidos pelo utilizador. Estes elementos podem ser utilizados juntamente com os elementos de comportamento padrão do Windows Communication Foundation (WCF). A behaviorExtensions secção define o elemento para que possa ser utilizado na configuração. Eis um exemplo de uma extensão de comportamento típica.

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

Para adicionar capacidades de configuração ao elemento, tem de escrever e registar um elemento de configuração. Para obter mais informações, veja a System.Configuration documentação.

Depois de o elemento e o respetivo tipo de configuração serem definidos, a extensão pode ser utilizada, conforme mostrado no exemplo seguinte.

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

Segurança

Recomenda-se vivamente que utilize nomes de assemblagem completamente qualificados ao registar tipos nos machine.config ficheiros e app.config . Se o tipo não for definido de forma exclusiva, o carregador do tipo CLR procura-o nas seguintes localizações pela ordem especificada:

Se a assemblagem do tipo for conhecida, o carregador procura as localizações de redirecionamento do ficheiro de configuração, GAC, a assemblagem atual com informações de configuração e o diretório base da aplicação. Se a assemblagem for desconhecida, o carregador procura na assemblagem atual, mscorlib e na localização devolvida pelo TypeResolve processador de eventos. Esta ordem de pesquisa CLR pode ser modificada com hooks, como o mecanismo de Reencaminhamento de Tipos e o evento AppDomain.TypeResolve.

Um atacante pode explorar a ordem de pesquisa CLR e executar código não autorizado. A utilização de nomes completamente qualificados (fortes) identifica exclusivamente um tipo e aumenta ainda mais a segurança do seu sistema.

Para obter mais informações, veja Como o Runtime Localiza Assemblagens e TypeResolve.

Ver também