Добавление 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>