请求元数据时未触发WCF AuthorizationManager

时间:2017-09-06 07:35:24

标签: c# wcf authentication wsdl authorization

在我的WCF服务的web.config中,我有以下部分:

<behaviors>
  <serviceBehaviors>
    <behavior>
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
      <serviceAuthorization serviceAuthorizationManagerType="Company.Connection.Services.Security.MyAuthorizationManager, Company.Connection.Services" />
    </behavior>
  </serviceBehaviors>
</behaviors>

我想使用 ServiceAuthorizationManager CheckAccessCore 方法来识别用户并决定是否允许用户获取WSDL,但是如果方法不被命中我请求元数据。我在这个配置中遗漏了什么吗?

1 个答案:

答案 0 :(得分:0)

我的猜测是你必须为自己的行为命名,并使用该名称将行为链接到您的服务。 e.g。

<system.serviceModel>  
  <services>  
    <service name="MyService"  
             behaviorConfiguration="MyServiceBehavior">  
...

<behaviors>
  <serviceBehaviors>
    <behaviour name="MyServiceBehavior">
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
...