2009-03-09 4 views
0

Ich versuche, eine Silverlight-Anwendung zu erhalten, um eine Verbindung zu einem Java-Webservice unter Verwendung einer Service-Referenz herzustellen.Silverlight Zugriff auf gesicherten Webservice

Ich bin zu der Schlussfolgerung gekommen, dass Silverlight nicht wie WPF oder ASP.NET in Bezug auf Service-Konnektivität funktioniert.

Ich habe das Internet durchsucht und alles, was ich für die Authentifizierung gefunden habe, war Artikel, die über die Sicherung der Anwendung durch den Benutzer durch Ändern des Dienstes zu einer Webmethode sprechen.

Ich muss den vorhandenen Dienst verwenden. Ich habe NetworkCredetials in ASP.NET und WPF verwendet. Was ist das Äquivalent in Silverlight?

Entschuldigung, ich hätte erwähnen sollen, dass es sich um einen Axis-Service auf einem JBoss-Server handelt.

UPDATE: Dieser Link scheint anzuzeigen, dass dies möglich sein sollte http://blogs.msdn.com/coding4fun/archive/2008/02/24/7883342.aspx. Sie verwenden NetworkCredentials, um sich mit der Twitter-API zu verbinden.

Antwort

0

Dies sollte auf jeden Fall möglich sein. Es sollte egal sein, in welcher Sprache der Dienst geschrieben wurde - nur das Format der Ausgabe (SOAP, JSON usw.).

Haben Sie SSL beteiligt?

Versuchen Sie, Ihre ClientAccessPolicy vollständig zu öffnen (ohne Einschränkungen) und versuchen Sie dann, diese in verschiedene Root-Verzeichnisse (Root des Servers, Root der App, Root der SL-App usw.) zu kopieren, um zu sehen, ob Sie bessere Ergebnisse erzielen.

Ich denke, eine vollständig offene Politik Datei würde wie folgt aussehen:

<?xml version="1.0" encoding="utf-8"?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from http-request-headers="*"> 
     <domain uri="*"/> 
     </allow-from> 
     <grant-to> 
     <resource path="/" include-subpaths="true"/> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 
0

Stellen Sie sicher, enthält den Tag in der Bindung ServiceReferences.ClientConfig Sicherheitsmodus sollte für den Https Zugang der Webservice Transport sein =

<basicHttpBinding> 
       <binding name="FactorSoap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"> 
        <security mode="Transport" /> 
       </binding> 

</basicHttpBinding>