<behaviorExtensions>
Rozšíření chování umožňují uživateli vytvářet prvky chování definované uživatelem. Tyto prvky lze použít společně se standardními elementy chování wcf (Windows Communication Foundation). Oddíl behaviorExtensions
definuje prvek tak, aby se mohl použít v konfiguraci. Tady je příklad typického rozšíření chování.
<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>
Pokud chcete do elementu přidat možnosti konfigurace, musíte napsat a zaregistrovat konfigurační prvek. Další informace o tom najdete v System.Configuration dokumentaci.
Po definování elementu a jeho typu konfigurace je možné použít rozšíření, jak je znázorněno v následujícím příkladu.
<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>
Zabezpečení
Při registraci typů v machine.config
souborech a app.config
důrazně doporučujeme používat plně kvalifikované názvy sestavení. Pokud typ není jednoznačně definován, zavaděč typů CLR ho vyhledá v následujících umístěních v zadaném pořadí:
Pokud je známo sestavení typu, zavaděč prohledá umístění přesměrování konfiguračního souboru, GAC, aktuální sestavení pomocí konfiguračních informací a základní adresář aplikace. Pokud je sestavení neznámé, zavaděč prohledá aktuální sestavení, mscorlib a umístění vrácené obslužnou rutinou TypeResolve
události. Toto pořadí hledání CLR lze upravit pomocí háček, jako je mechanismus předávání typů a událost AppDomain.TypeResolve.
Útočník může zneužít pořadí vyhledávání CLR a spustit neautorizovaný kód. Použití plně kvalifikovaných (silných) názvů jednoznačně identifikuje typ a dále zvyšuje zabezpečení vašeho systému.
Další informace najdete v tématu Jak modul runtime vyhledá sestavení a TypeResolve.