solicitud prohibió prohibe esquema con cliente autenticación html asp.net web-services http authorization

html - prohibió - La solicitud HTTP no está autorizada con el esquema de autenticación de cliente ''Anónimo''. El encabezado de autenticación recibido del servidor era ''NTLM''



se prohibe la solicitud http con el esquema de autenticación de cliente anonymous (3)

Tengo una aplicación web ASP.NET escrita en VB.NET. Una parte de la aplicación realiza una llamada AJAX a un archivo ASMX interno que a su vez hace una llamada a un servicio web remoto que es solo un único archivo ASMX. Normalmente esto funciona bien y se ha implementado un par de veces y funciona bien. Sin embargo, un cliente recibe el mensaje de la llamada AJAX:

La solicitud HTTP no está autorizada con el esquema de autenticación de cliente ''Anónimo''. El encabezado de autenticación recibido del servidor era ''NTLM''.

He recorrido una gran cantidad de sitios web tratando de arreglar esto, pero parece que no puedo encontrar ninguna respuesta que me sirva.

No he podido replicar el error en mi servidor de prueba, que es el mismo que el del cliente, Win2003 IIS6.

El servicio web remoto se implementa en Windows 2008 r2 - IIS7.5. El servicio remoto se implementa utilizando solo la autenticación ''Anónimo''. La implementación del cliente está configurada con Anónimo y ''Autenticación integrada de Windows''. He intentado cambiar los niveles de autenticación en ambas implementaciones pero no puedo replicar el problema. Lo más cerca que he llegado es cuando configuro el servicio remoto de autenticación IIS para

La solicitud HTTP no está autorizada con el esquema de autenticación de cliente ''Ntlm''. El encabezado de autenticación recibido del servidor fue ''''.

En el archivo web.config, la referencia al servicio remoto es:

<system.serviceModel> <bindings> <basicHttpBinding> <binding name="SVCMappingSoap" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/> <security mode="None"> <transport clientCredentialType="None" proxyCredentialType="None" realm=""/> <message clientCredentialType="UserName" algorithmSuite="Default"/> </security> </binding> </basicHttpBinding> </bindings> <client> <endpoint address="http://svc.website.com/services/myService.asmx" binding="basicHttpBinding" bindingConfiguration="SVCMappingSoap" contract="SVCMappingService.SVCMappingSoap" name="SVCMappingSoap"/> </client> </system.serviceModel>

He intentado cambiar varias configuraciones en la sección <security> pero todavía no puedo replicar.


No estoy seguro de la configuración total de tu servidor.

<security mode="None"> <transport clientCredentialType="None" proxyCredentialType="None" realm=""/> </security>

en lugar de encima de uno, intente con la configuración siguiente

<security mode="TransportCredentialOnly"> <transport clientCredentialType="Ntlm"/> <message clientCredentialType="UserName" algorithmSuite="Default"/> </security>

por favor revise los enlaces a continuación, puede obtener más ideas sobre ellos y puede cambiar la configuración en función de sus requisitos:


Tuve que cambiar el valor predeterminado generado

<security mode="Transport"/>

dentro

<security mode="Transport" > <transport clientCredentialType="Ntlm"/> </security>


Un comentario más para este problema:

Si no está usando HTTPS,

<security mode="Transport"/>

no es apoyado. Puedes usar

<security mode="TransportCredentialOnly">

en lugar.