【问题标题】:Add AspNetCompatibilityRequirements attribute to Biztalk Wcf service将 AspNetCompatibilityRequirements 属性添加到 Biztalk Wcf 服务
【发布时间】:2016-09-20 23:54:19
【问题描述】:

我正在尝试根据权限要求让 Biztalk 2009 WCF 接收位置锁定,因此只有特定的用户组可以使用服务 web.config 中的授权规则访问 WSDL 和服务

<authorization>
<allow users="uuu\InterfaceUser" />
<allow roles="AllowedTeam" />
<deny users="*" />
</authorization>

我在 web.config 中启用了以下功能,认为它可以解决问题。

<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>

遇到了错误

无法激活该服务,因为它不支持 ASP.NET 兼容性。为此应用程序启用了 ASP.NET 兼容性。在 web.config 中关闭 ASP.NET 兼容模式,或将 AspNetCompatibilityRequirements 属性添加到服务类型,并将RequirementsMode 设置为“Allowed”或“Required”。

我知道我需要做的是添加以下内容:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

到服务,但是通过 Biztalk WCF 服务向导生成,所以我不确定如何配置它。

接收位置是 WCF-CustomIsolated ,但我在传输属性中没有看到打开 AspNetCompatibilityRequirements 属性的行为。 BindingType 是 basicHttp 安全性是 TransportWithMessageCredentials

任何想法或指导都会有所帮助。

我必须对服务和 wsdl 进行身份验证。

【问题讨论】:

  • 您想设置身份验证规则是服务本身,还是 WSDL 或两者兼而有之?

标签: asp.net .net web-services wcf biztalk


【解决方案1】:

经过进一步研究,似乎不可能将 asp.net 兼容性集成到服务中。这意味着添加

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

不可能。

我所做的解决方案是构建一个自定义行为以使用 ASP.NET URL 授权模块。

感谢 Dean May 提供的解决方案

https://phidiax.com/blog/post/securing-biztalk-wcf-receive-locations

【讨论】:

    猜你喜欢
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多