it-swarm.com.de

Die HTTP-Anforderung ist mit dem Clientauthentifizierungsschema 'Anonymous' nicht autorisiert. Der vom Server empfangene Authentifizierungsheader war "NTLM".

Ich habe eine in VB.NET geschriebene ASP.NET-Webanwendung. Ein Teil der Anwendung führt einen Aufruf von AJAX an eine interne ASMX-Datei aus, die wiederum einen Remote-Webdienst anruft, der nur eine einzige ASMX-Datei ist. Normalerweise funktioniert das einwandfrei und wurde ein paar Mal eingesetzt und funktioniert einwandfrei. Ein Client erhält jedoch die Nachricht vom AJAX - Aufruf: 

Die HTTP-Anforderung ist mit dem Clientauthentifizierungsschema nicht autorisiert 'Anonym'. Der vom Server empfangene Authentifizierungsheader war "NTLM".

Ich habe eine große Anzahl von Websites durchsucht, um das Problem zu beheben, aber es scheint, dass ich keine Antwort finde, die für mich funktioniert.

Ich konnte den Fehler auf meinem Testserver nicht replizieren. Dies ist derselbe wie der Client Win2003 IIS6.

Der Remote-Webdienst wird unter Windows 2008 r2 - IIS7.5 bereitgestellt. Der Remote-Service wird nur mit der anonymen Authentifizierung bereitgestellt. Die Clientbereitstellung ist mit anonymer und integrierter Windows-Authentifizierung eingerichtet. Ich habe versucht, die Authentifizierungsebenen für beide Implementierungen zu ändern, kann das Problem jedoch nicht replizieren. Am nächsten bin ich, wenn ich die Authentifizierung des Remote-Dienstes IIS eingestellt habe 

Die HTTP-Anforderung ist mit dem Clientauthentifizierungsschema nicht autorisiert "Ntlm". Der vom Server empfangene Authentifizierungsheader war ''.

In der Datei web.config lautet der Verweis auf den Remote-Service:

<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>

Ich habe versucht, eine Nummer der Einstellung im Abschnitt <security> zu ändern, kann jedoch immer noch nicht replizieren.

12
SausageFingers

Ich bin mir nicht sicher, wie Ihr Server insgesamt aufgebaut ist. 

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

anstelle von oben versuchen Sie es bitte mit der folgenden Konfiguration

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

bitte gehen Sie durch die untenstehenden Links, Sie können mehr über diese erfahren und die Konfiguration entsprechend Ihren Anforderungen ändern:

19
himanshu

Ich musste den Standardwert ändern

      <security mode="Transport"/>

in 

      <security mode="Transport" >
        <transport clientCredentialType="Ntlm"/>
      </security>
2
Jeroen K

Noch ein Kommentar zu diesem Problem:

Wenn Sie HTTPS nicht verwenden, 

<security mode="Transport"/>

wird nicht unterstützt. Sie können verwenden 

<security mode="TransportCredentialOnly">

stattdessen.

0
Soyokaze