通过IIS中的表单身份验证公开WCF服务:如何公开元数据(?wsdl),但操作受到保护

时间:2010-08-16 19:14:03

标签: asp.net wcf forms-authentication

我们已经通过IIS托管了一些WCF服务。该应用程序通常使用表单身份验证,我们希望继续为Web服务客户端提供该功能。我们的web.config中只有<authorization><deny users="?">和一些认证/重定向优点,可以完成所有工作。

问题是我们希望用户能够在没有身份验证的情况下访问服务的元数据。他们是否可以匿名访问/services/v1/ArtifactService.svc?wsdl,但仍需要/services/v1/ArtifactService.svc/rest/GetArtifacts?studyId=123身份验证?如果是这样,我无法在配置中找出正确的咒语。

我能想到的最好的方法是在元数据服务行为中设置绝对URL,但是我必须在我们部署的任何地方安装路径。 (<serviceMetadata httpGetEnabled="true" httpGetUrl="http://some/absolute/path">)。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为这是不可能的。如果您需要使用allow和deny元素对资源进行授权,则无法根据url查询指定不同的授权级别。您必须控制服务中的授权 - PrincipalPermission。