<behaviorExtensions>
用户可以使用行为扩展来创建用户定义的行为元素。 这些元素可与标准的 Windows Communication Foundation (WCF) 行为元素一起使用。 behaviorExtensions
节定义了元素,使其可用于配置中。 下面是一个典型的行为扩展示例。
<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>
若要向元素添加配置功能,需要编写和注册配置元素。 有关这方面的更多信息,请参见 System.Configuration 文档。
在定义元素及其配置类型之后,可以使用扩展,如以下示例所示。
<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>
安全性
强烈建议在 machine.config
和 app.config
文件中注册类型时使用完全限定的程序集名称。 如果没有唯一定义类型,则 CLR 类型加载程序将按照指定的顺序在以下位置中搜索类型:
如果已经知道类型的程序集,则加载程序将搜索配置文件的重定向位置、GAC、使用配置信息的当前程序集以及应用程序基目录。 如果程序集未知,则加载程序将搜索当前程序集、mscorlib 以及 TypeResolve
事件处理程序返回的位置。 通过使用“类型转发”机制和 AppDomain.TypeResolve 事件之类的挂钩,可以修改此 CLR 搜索顺序。
攻击者可以利用 CLR 搜索顺序来执行未授权的代码。 使用完全限定的(强)名称可唯一标识某个类型,进一步提高系统的安全性。
有关详细信息,请参阅运行时如何定位程序集和 TypeResolve。