2016-03-23 4 views
0

Ich hostet eine clientaccesspolicy.xml für eine lokal gehostete Silverlight-Komponente, die über TCP-Verbindungen kommuniziert. Es funktioniert, aber ich versuche, die zulässigen Domänen zu straffen, und ich kann keine Dokumentation finden, um anzugeben, wie diese Einschränkungen für TCP-Verbindungen angegeben werden.Wie beschränke ich Domänen für Silverlight NetTcp-Verbindungen?

Ist dies möglich, und wenn es so ist, wie sollte ich diese Einschränkungen angeben?

<?xml version="1.0" encoding="utf-8"?> 
<access-policy> 
    <cross-domain-access> 
     <policy> 
      <allow-from http-request-headers="*"> 
       <domain uri="*"/> 
      </allow-from> 
      <grant-to> 
       <socket-resource port="4502-4534" protocol="tcp" /> 
      </grant-to> 
     </policy> 
    </cross-domain-access> 
</access-policy> 

Antwort

0

Basics of the Security Policy System

Eine zusätzliche Einschränkung auf die Sockets-Klassen ist, dass der Zielportbereich, der eine Netzwerkanwendung zu erlaubt ist, muss eine Verbindung von 4502-4534 im Bereich sein. Dies sind die einzigen Zielports, die von einer Verbindung aus einer Silverlight -Anwendung mit Sockets zulässig sind. Wenn sich der Zielport nicht innerhalb dieses Bereichs befindet, schlägt der Verbindungsversuch fehl. Es ist möglich, dass ein Zielserver Verbindungen von diesem eingeschränkten Bereich an einem Port empfängt und ihn an einen anderen Port (z. B. einen bekannten Port) umleitet, wenn dies zur Unterstützung eines bestimmten vorhandenen Anwendungsprotokolls erforderlich ist.

Ich würde denken, dass eine Verengung der Reichweite von Ports würde die verfügbaren TCP-Sockets begrenzen. Sie zeigen eine Example Policy File for Sockets here

<?xml version="1.0" encoding ="utf-8"?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from> 
     <domain uri="file:///" /> 
     </allow-from> 
     <grant-to> 
     <socket-resource port="4502-4506" protocol="tcp" /> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 

Unter Berufung auf die folgende Dokumentation von MS

To use a clientaccesspolicy.xml file to allow cross-domain access

Um den Dienst für den Zugriff über TCP-Sockets zu aktivieren, fügen <socket-resource port="4502" protocol="tcp" /> zum <grant-to> Element, in dem die 4502 ist der Port-Wert, auf dem der Service gehostet wird.

Domain Beispiel

Diese Richtliniendatei akzeptiert Verbindungen nur aus den Domänen und Schema spezifiziert. Diese Richtliniendatei gibt bestimmte Anforderungsheader an und gibt Ressourcen an, auf die zugegriffen werden kann.

<?xml version="1.0" encoding="utf-8"?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from http-request-headers="MyHeader, X-API-*">  
     <domain uri="http://electronics.fabrikam.com"/> 
     <domain uri="http://books.fabrikam.com"/> 
     <domain uri="http://contoso.com:8080"/> 
     </allow-from>  
     <grant-to>  
     <socket-resource port="4502-4506" protocol="tcp" /> 
     </grant-to>  
    </policy> 
    </cross-domain-access> 
</access-policy> 

Für die oben Politik, die unten aufgeführt sind Silverlight HTTP-Anwendungen erlaubt den Zugriff auf die aufgeführten Ports haben:

http://electronics.fabrikam.com/sample/app.xap 
http://books.fabrikam.com/web/sample/app.html 
http://contoso.com:8080/sample/app.xap 

Für die oben Politik, die unten aufgeführten Silverlight-Anwendungen sind nicht zu haben, erlaubt Zugang zu den aufgeführten Ports:

http://electronics.fabrikam.com:8080/sample/app.xap 
http://electronics.fabrikam.com:8080/sample/app.xap 
http://bar.com/sample/app.xaml 
https://bar.com/sample/app.html 

die folgenden HTTP-Request-Header können (zusätzlich zu den Content-Type-Header, der immer erlaubt ist) gesendet werden:

MyHeader 
all headers starting with X-API- 

Ressourcen Network Security Access Restrictions in Silverlight

+0

Verwendung von '' oder Variationen es scheint nicht leider zu arbeiten, und auch nicht ' '. – dlanod

Verwandte Themen