none
silverlight5 浏览器应用调用新浪微博 API的问题 RRS feed

  • 问题

  • 你好,我打算基于新浪微博api 开发一款浏览器应用,采用的silverlight5 正式版,但是在连接新浪微博api的时候,在本地测试能够正常连接,但发布到网站,总是提示安全性错误,不知道怎么回事,请高手解答(注:在silverlight项目属性里面,"在浏览器内运行时需要提升的信任"已经勾选
    2011年12月21日 11:10

答案

  • 你好,

    有一个关键的地方想问一下你,当你的Silverlight提升信任的时候有没有像文档所说的那样完成几个步骤?

    像修改目标机器的注册表,对.xap文件进行签名等,请参考以下文档:

    http://msdn.microsoft.com/zh-cn/library/gg192793(v=VS.95).aspx

     

    其实还一种解决方案就是不要直接在Silverlight中直接访问新浪API,而是在中间用一层Service来访问新浪API,然后Silverlight再来访问中间的Service,这样你就不用在Silverlight程序中提升信任了。


    Daoping Liu - MSFT
    • 已标记为答案 逍遥客 2012年1月2日 15:19
    2011年12月29日 5:39
    版主

全部回复

  • 你好,

    请问提示的错误是什么?能否把相关信息发一下。谢谢!


    Daoping Liu - MSFT
    2011年12月23日 2:44
    版主
  • 主要是安全性错误,

    2011年12月24日 7:29
  • <?xml version="1.0" encoding="utf-8"?>
    <access-policy>
      <cross-domain-access>
        <policy>
          <allow-from>      
            <domain uri="*"/>
          </allow-from>      
          <grant-to>      
            <resource path="/game/close_light/data/" include-subpaths="true"/>
          </grant-to>      
        </policy>
      </cross-domain-access>
    </access-policy>
     
    

    clientaccesspolicy.xml,你配置好没?
    2011年12月25日 4:09
  • 我是访问新浪微博的api接口,没有权限配置的. 但是silverlight5不是已经增加了一个功能吗:"在浏览器内运行需要提升的信任".按照微软的说法:增加了这个选项,就应该不用配置clientaccesspolicy.xml 文件,也能够访问的,并且,我在本地浏览器内运行调试的时候,访问也是没有问题的,只是发布到远程服务器上,进行访问就出现了上述问题

    2011年12月25日 11:58
  • 你好,错误信息为:
    2011年12月25日 15:05
  • 你好,

    根据你的描述,首先可以确定不是CrossDomain的问题。

    你可以先把你的程序发布到你自己机子的IIS上看看是不是正常,如果正常,那就是“远程服务器”的问题了。

    还有,你试试把 “在浏览器内运行时需要提升的信任" 去掉,看看会不会出现同样的问题。


    Daoping Liu - MSFT
    2011年12月26日 8:12
    版主
  • 你好:

     1.在本机的iis上运行时正常的

    2.我在多个运程服务器上都部署测试了,并且采用了多个域名.结果都是出现上图的错误

    3.把 “在浏览器内运行时需要提升的信任" 去掉,出现的问题,与现在一样

    2011年12月26日 14:46
  • 你好,

    这说明不是你程序的问题,而是远程服务器的问题。

    你可以联系一下远程服务器的管理员,问问他们是不是做了什么安全性的设置,导致不能访问其它域的服务。


    Daoping Liu - MSFT
    2011年12月27日 4:37
    版主
  • 你好:我感觉安全性设置应该没有吧,因为在这些服务器上,我通过asp.net 程序是可以正常访问的;

    如果是安全性设置的问题,你感觉应该是哪方面的呢.我有个vps,可以自己设置

    2011年12月27日 6:07
  • 你好,

    有一个关键的地方想问一下你,当你的Silverlight提升信任的时候有没有像文档所说的那样完成几个步骤?

    像修改目标机器的注册表,对.xap文件进行签名等,请参考以下文档:

    http://msdn.microsoft.com/zh-cn/library/gg192793(v=VS.95).aspx

     

    其实还一种解决方案就是不要直接在Silverlight中直接访问新浪API,而是在中间用一层Service来访问新浪API,然后Silverlight再来访问中间的Service,这样你就不用在Silverlight程序中提升信任了。


    Daoping Liu - MSFT
    • 已标记为答案 逍遥客 2012年1月2日 15:19
    2011年12月29日 5:39
    版主
  • crossdomain.xml要放也应该放在webservice端,即新浪服务器端,建议通过自己的webservice访问新浪的api,这样安全性问题就可以自己控制
    2012年3月19日 3:45