2016-09-20 54 views
1

我試圖根據權限要求獲得Biztalk 2009 WCF接收位置鎖定,因此只有特定用戶組可以使用服務web.config中的授權規則訪問WSDL和服務將AspNetCompatibilityRequirements屬性添加到Biztalk Wcf服務

<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屬性添加到R​​equirementsMode設置爲「允許」或「必需」的服務類型。

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

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 

的服務,但通過BizTalk WCF服務嚮導生成的,所以我不確定如何得到這個配置。

接收位置是一個WCF-CustomIsolated,但我沒有看到傳輸屬性中打開AspNetCompatibilityRequirements屬性的行爲。 BindingType是basicHttp安全是TransportWithMessageCredentials

任何想法或指導將是有益的。

我必須對服務和wsdl都進行身份驗證。

+0

發現它是服務本身,只是WSDL或兩者要設置身份驗證規則? –

回答

0

經過進一步的研究,看起來不會有可能將asp.net兼容性集成到服務中。這意味着加入

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 

將不可能。

我所做的解決方案是事實上構建一個自定義行爲來使用ASP.NET URL授權模塊。

感謝院長可用於解決在

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