Ich entwickle eine Anwendung, in der ich den in Java entwickelten Webservice mit dem http-Protokoll konsumieren muss. Ich entwickle die Anwendung mit C # .NET winforms.everything funktioniert gut tillnow.but der Webservice verwendet jetzt SSL-Sicherheit daher das Service-URL-Protokoll von http zu https.now ich fcing die Probleme beim Zugriff auf den https Webservice / p>
Ich habe versucht, von der SoapUI aus auf den https-Webservice zuzugreifen, indem ich die Authentifizierungsparameter (Benutzername und Passwort) auf der Registerkarte Authentifizierung wie unten gezeigt zur Verfügung stelle:
Es funktioniert gut von SoapUI.
aber ich biete die Authentifizierungsparameter vom Code an, wie unten es nicht funktioniert:
%Vor% Ich verwende den Sicherheitsmodus wie folgt: TransportWithMessageCredential
und
ClientCredentialTtype
wie: Basic
Meine App.Config
Datei ist wie folgt:
Mein Code wie folgt:
%Vor%Ich bekomme folgende Ausnahme:
System.ServiceModel.Security.MessageSecurityException: Das HTTP Anfrage ist nicht autorisiert mit Client-Authentifizierungsschema 'Anonymous'. Der vom Server empfangene Authentifizierungsheader war 'Basic' realm="EJBServiceEndpointServlet Realm" '. --- & gt; System.Net.WebException: Der Remote-Server hat einen Fehler zurückgegeben: (401) Nicht autorisiert.
BEARBEITEN: vom Client habe ich mit Fiddler das Anfragefenster wie folgt verifiziert: Auf der Registerkarte AUth wird angezeigt, dass kein Authorization Header vorhanden ist.
Fiddler Raw-Anfrage wie folgt:
%Vor%jede Hilfe würde sehr geschätzt werden.
Ich frage mich, ob das Problem mit der Bindung verbunden sein könnte, obwohl es schwer zu sagen ist, ohne die Service-Konfiguration zu überprüfen oder die erfolgreiche safeUI-Anfrage zu sehen. (Hinweis: Möglicherweise möchten Sie ein Snippet der Nachricht einschließlich des Soap-Headers aus dem soapUI-HTTP-Protokoll einfügen.)
In jedem Fall sollten Sie sicherstellen, dass der Dienst tatsächlich ws-security (Sicherheit auf Nachrichtenebene) verwendet, indem Sie die folgende Bindung versuchen:
%Vor%Sie sollten Ihre App-Konfiguration ändern:
%Vor% Auf Transportebene haben Sie keine Authentifizierung, also <transport clientCredentialType="None" />
und auf Nachrichtenebene haben Sie Benutzername | Passwort Authentifizierung, also <message clientCredentialType="UserName"
gehst du durch einen Proxy-Server? Wenn ja, werden die Details in IE eingegeben? Können Sie https-Seiten in IE durchsuchen? Wenn ja, sollte dies von jedem WebRequest
übernommen werden, der einen https-Aufruf tätigt, da er ein CONNECT
zum Proxy-Server (was passiert), aber in Ihrem Aufruf fehlt der Proxy-Authorization
-Header. Dies sollte Ihr Fokus sein - versuchen Sie eine einfache WebRequest
zu sagen https: // google.com und sehen Sie, was Sie in fiddler bekommen.
Möglicherweise haben Sie ein Problem mit der Weiterleitung Ihres Proxyservers auf Ihre Anfrage hin. Können Sie https in einem anderen Netzwerk als hinter einem Proxy ausprobieren?
Vielleicht kann dieser Link helfen.
Es wird erklärt, wie Sie Ihren Endpunkt im Falle von REST / SOAP WebServices
konfigurierenKann den Web-Service nicht mit der Standardauthentifizierung aufrufen WCF
Das bindende Problem, das Sie benutzerdefinierte Bindung verwenden müssen, ist Beispiel.
Tags und Links wcf c# ssl authentication web-services