我使用WCF服务发布向导发布了一个WCF服务(这似乎是我可以找到创建WCF服务以供WCF-webhttp接收适配器使用的唯一方法)。我想在IIS中使用ASP.NET身份验证。
根据this文章:
... WCF安全模型不遵守System.Web配置元素中指定的任何基于URL的授权规则... WCF的ASP.NET兼容模式适用于不需要能够在主机外部托管的场景IIS或通过HTTP以外的协议进行通信。通过以下配置(位于应用程序的Web.config文件中)在应用程序级别启用WCF的ASP.NET兼容性模式:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
但是,当向服务发出客户端请求时,我收到“服务无法激活,因为它不支持ASP.NET兼容性”错误。根据我在此发现的articles,必须在设计时将AspNetCompatibilityRequirementsMode属性添加到服务类。如果使用WCF发布向导,该怎么做?我找不到任何解释如何创建自定义BizTalk WCF服务的文章。
答案 0 :(得分:0)
答案是按照this演练来构建自定义行为。自定义行为检查传入WCF服务请求的用户安全主体,并确定它是否满足ASP.NET授权要求的要求。这允许您从IIS中控制WCF服务/站点授权。