基于WIF的WCF服务需要调用方法FederatedServiceCredentials.ConfigureServiceHost(),或将等效的element <federatedServiceHostConfiguration>
放入<federatedServiceHostConfiguration>
文件中才能工作。这是服务级别的设置,换句话说,它适用于所有端点。
根据方法文档,以多种WIF特定方式修改了web.config
实例。例如,授权被基于WIF的授权类代替。
现在,我想拥有一个带有多个ServiceHostBase
的单个<service>
(在<system.serviceModel><services>
内部),其中一个端点是基于WIF的,而其他端点正在使用普通的Windows身份验证。
Update。针对
<endpoint>
,让我解释为什么我们要混合使用WIF和非WIF端点。如果仅使用WIF,则每个客户都需要一个STS,例如AD FS。进行设置并不困难,但这是一个障碍,尤其是如果他们只是想测试我们的软件。因此,我们要做的是安装在使用Windows集成身份验证的模式下(用于我们的Web服务以及前端),然后以后他们可以切换到使用AD FS的模式。因此,基本上,我们希望能够在没有AD FS的情况下进行安装,以降低进入应用程序的障碍。
为此,an answer below需要一个<service>
。但是-这是我的问题-这也会影响同一服务的非WIF端点:例如,它们突然使用WIF授权管理器(<federatedServiceHostConfiguration>
的实例)。
所以我的问题是:在单个WCF class ClaimsAuthorizationManager
中混合使用WIF和非WIF端点的推荐方法是什么?