WCF Настройка CustomBinding с Kerberos - PullRequest
0 голосов
/ 13 июня 2011

Я хочу иметь возможность указать уровень безопасности для моей пользовательской привязки так же, как вы делаете это с basicHttpBinding.

  <customBinding>
    <binding name="jsonpBinding" >      
      ....                
      <security mode="TransportCredentialOnly">
          <transport clientCredentialType="Windows"/>
      </security>
    </binding>
  </customBinding>

Как сделать это правильно, так как он не принят?

1 Ответ

0 голосов
/ 14 июня 2011

Добавление authenticationScheme="Negotiate" решило проблему.

Добавьте это к вашему методу WCF

[OperationBehavior(Impersonation = ImpersonationOption.Required)]
public int Dosomething()
{
...
}

Добавьте это в свой WCF web.config

 <customBinding>     
    <binding name="jsonpBinding" >             
       <jsonMessageEncoding/>
       <httpTransport manualAddressing="true" authenticationScheme="Negotiate"/>
    </binding>
 </customBinding>

Добавление следующего к вашему клиенту (MVC Web App в моем случае). Стоит отметить, что приложение svcutil не генерирует поведение для вашей клиентской заглушки, и вы должны добавить его вручную. Это было у меня какое-то время!

<client>
          <endpoint address="..."
              binding="customBinding" bindingConfiguration="..."
              contract="..." name="..."  behaviorConfiguration="ImpersonationBehavior" />        
        </client>
        <behaviors>
          <endpointBehaviors>
            <behavior name="ImpersonationBehavior">
              <clientCredentials>
                <windows allowedImpersonationLevel="Impersonation"/>
              </clientCredentials>
            </behavior>            
          </endpointBehaviors>          
        </behaviors>
...