Silverlight访问其他网站安全错误

时间:2012-09-04 20:37:53

标签: security silverlight-5.0

我有一个需要从其他网站加载文本文件的Silverlight 5项目。在“其他”网站上,我安装了一个具有

的clientaccesspolicy.xml文件
<access-policy>
    <cross-domain-access>
        <policy>
            <allow-from>
                <domain uri="*" />
            </allow-from>
            <grant_to>
                <resource path=/public_html/services/" include-subpaths="true"
            </grant-to>
        </policy>
    </cross-domain-access>
</access-policy>

此文件位于“其他”网站的根目录中,该网站是基于Linux的网站。 (我也尝试将它放在那里的public_html目录中。)

我的代码有:

    var uri = "http://www.otherwebsite.com/services/TextFile.txt";
    var webClient = new WebClient( );
    webClient.OpenReadCompleted += ( s, e ) =>
        {
            using ( var stream = new StreamReader( e.Result ) )
            {
               // stream processing logic 
            }

        };
    webClient.OpenReadAsync( new Uri( uri, UriKind.Absolute ) );

我在“new StreamReader”语句中的OpenReadCompleted委托中收到System.Security.SecurityException。

我可以确认,如果我在浏览器中明确导航到该文件,我可以实现它。我是Silverlight的新手,而不是网络大师,所以我可能会做很多错事。

1 个答案:

答案 0 :(得分:0)

答案在上面的jv42评论中:C#代码没有任何问题,但是grant-to的资源路径值具有非常具体的路径/ public_html / services /,但它只需要/ services /,并且xml文件本身必须位于/ public_html目录中。