1

Ich verwende Silverlight 4-Anwendung in zwei Szenarien.Silverlight Security Problem: Selbstsigniertes Zertifikat

Szenario 1: Silverlight und RPC auf derselben Maschine ist Silverlight XAP auf einer Webseite gehostet

  1. Seinen Lauf auf dem Dateisystem, auch auf dem Dateisystem:

    C:\Silverlight\FSSilverlightApp\bin\Debug\SilverlightApplication2TestPage.html 
    
  2. Verbindung mit einer Website auf localhost, auf die zugegriffen wird:

    https://localhost/rpc/someMethod 
    
  3. Dies sind zwei separate URI so der Browser erkennt und sofort anfordert (Spur über Fiedler):

    https://lcoalhost/clientaccesspolicy.xml 
    

    erfolgreich zurück:

    <?xml version="1.0" encoding="utf-8"?> 
    <access-policy> 
        <cross-domain-access> 
         <policy> 
          <allow-from http-request-headers="*"> 
          <domain uri="http://*"/>   
          <domain uri="https://*" /> 
          </allow-from> 
          <grant-to> 
          <resource path="/" include-subpaths="true"/> 
          </grant-to> 
         </policy> 
        </cross-domain-access> 
    </access-policy> 
    
  4. Die Anwendung ist dann in der Lage, die RPC-Anforderungen zu machen (beobachtet über fiddler)

    Alles ist gut. Wenn ich den Remote-Host anstelle von localhost auf den Namen des lokalen Computers ändere, funktioniert das auch.

Szenario 2: Silverlight auf dem lokalen Rechner und RPC ist remote

  1. In diesem Szenario verwende ich einen anderen Desktop die gleiche RPC-Server in Szenario für den Zugriff auf 1.
  2. Silverlight startet und keine Anfrage an: clientaccesspolicy.xml wird gemacht
  3. Fiddler zeigt eine Tonne von HTTPS-Tunneln eingerichtet, aber keine Kommunikation zwischen meinem Computer und dem Remote-Server.

Die folgende Sicherheitsausnahme zurückgegeben:

System.Security.SecurityException ---> System.Security.SecurityException: Security error. 
    at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResultasyncResult) 
    at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(ObjectsendState) 
    at System.Net.Browser.AsyncHelper.<>c__DisplayClass2.<BeginOnUI>b__0(Object sendState) 
    --- End of inner exception stack trace --- 
    at [email protected]nvoke(Exception _arg1023) 
    at [email protected](AsyncParams`1 args) 

Ich nehme an, dies ist ein IE-Konfigurationsproblem. Ich habe versucht, die Maschine in Szenario 1, als eine vertrauenswürdige Website innerhalb des Internet Explorers und das schien nicht zu funktionieren ... Dies muss ein selbst unterzeichnet oder nicht übereinstimmendes Zertifikat Problem sein. Irgendwelche Gedanken?

Verwendung: IE 8 und Windows 7

Gedanken?

Antwort

0

Ich benutzte Fiddler, um zwischen dem sliverlight-Client und dem Server zu sitzen. Damit dies funktioniert, musste ich das Fiddler-Zertifikat (tools \ fiddlerOptions \ https) exportieren und lokal als Root-Zertifizierungsstelle installieren.

Verwandte Themen