Webservice mit https-Protokoll konsumieren

8

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:

%Vor%

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.

    
Sudhakar Tillapudi 13.06.2014, 09:58
quelle

5 Antworten

2

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%     
Seymour 17.06.2014 11:48
quelle
1

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"

    
Kirill Bestemyanov 16.06.2014 09:10
quelle
0

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?

    
wal 17.06.2014 12:12
quelle
0

Vielleicht kann dieser Link helfen.

Es wird erklärt, wie Sie Ihren Endpunkt im Falle von REST / SOAP WebServices

konfigurieren

Kann den Web-Service nicht mit der Standardauthentifizierung aufrufen WCF

    
sternze 18.06.2014 12:19
quelle
-1

Das bindende Problem, das Sie benutzerdefinierte Bindung verwenden müssen, ist Beispiel.

Ссылка

    
Muhammad Arshad 23.06.2014 08:15
quelle