Puedo conectarme a mi servicio WCF con la aplicación Win-form, sin embargo, no puedo hacerlo con mi servicio de Windows. Siempre que yo fuego abierto() al proxy que arroja el siguiente errorEl servidor ha rechazado las credenciales del cliente, WCF como servicio de Windows
El servidor ha rechazado las credenciales del cliente
excepción interna: System.Security.Authentication.InvalidCredentialException: El servidor ha rechazado las credenciales del cliente .
---> System.ComponentModel.Win32Exception: El intento de inicio de sesión no
--- Final de seguimiento de pila de excepción ---
en System.Net.Security.NegoState.ProcessAuthentication (LazyAsyncResult lazyResult)
en System.Net.Security.NegotiateStream.AuthenticateAsClient (NetworkCredential credencial, ChannelBinding de unión, de cadena targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel)
en System.Net.Security.NegotiateStream.AuthenticateAsClient (NetworkCredential credencial, cadena targetName, Protect ionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel)
en System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeInitiator.OnInitiateUpgrade (Corriente corriente, SecurityMessageProperty & remoteSecurity)
intentado buscar la solución, pero ninguno ajuste a mis necesidades, por lo tanto, al corriente.
Por favor, ayuda ...
Actualización 1:.
@ A.R., intentado usar
client.ClientCredentials.Windows.AllowedImpersonationLevel =
System.Security.Principal.TokenImpersonationLevel.Impersonation;
pero fue en vano.
Actualización 2:
configuración de servicio WCF
<system.serviceModel>
<diagnostics performanceCounters="All" />
<bindings>
<netTcpBinding>
<binding name="myBindingForLargeData" maxReceivedMessageSize="5242880" maxConnections="10">
<readerQuotas maxDepth="64" maxStringContentLength="5242880" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
</binding>
</netTcpBinding>
</bindings>
<services>
<service behaviorConfiguration="WCFService.ServiceBehavior"
name="WCFService.CollectorService">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="myBindingForLargeData"
name="netTcpEndPoint" contract="WCFService.ICollectorService" />
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
name="mexTcpEndPoint" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8010/WCFService.CollectorService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WCFService.ServiceBehavior">
<serviceMetadata httpGetEnabled="False"/>
<serviceDebug includeExceptionDetailInFaults="True" />
<serviceThrottling
maxConcurrentCalls="32"
maxConcurrentSessions="32"
maxConcurrentInstances="32"
/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Se ha actualizado la pregunta, por favor marque – Bravo
OK, tiene que decirle realmente a quién debe suplantar. No puedes simplemente configurar la bandera y esperar que se haga pasar por otra persona mágicamente. Lea los materiales presentados en el segundo enlace. –