在 Silverlight 中管理动态内容交付,第 1 部分
2009-02-05 11:54:37 来源:WEB开发网您可以使用 Headers 属性来指定附加标头,因为默认情况下该类并不指定任何标头。但应注意,您设置的某些标头会被 Framework 剥离而改为进行内部管理。这些标头包括 Referer、Connection 和 User-Agent。Content-Type 标头(如果已设置)会被保留。
在下载资源时,WebClient 类会在尝试连接之前透明地使用浏览器缓存。如果 XAML 或 XAP 资源不在缓存中,则该类将继续执行下载。之所以要从 Silverlight 应用程序下载内容,是 Silverlight 运行时和主机浏览器提供给插件的内部 API 这二者的共同作用而决定的。这意味着在 WebClient 的掩盖下,Silverlight 运行时会与浏览器沙箱进行沟通,以查看请求的资源是否已存在于缓存中。如果不在,Silverlight 会依照自己的安全策略继续授权请求。当数据最终从端点返回时,Silverlight 运行时会通过浏览器的服务将其缓存在本地,并完全遵循当前的缓存策略。
Silverlight System.Net 命名空间中的 WebClient 类和其他 HTTP 类具有许多安全限制。特别是 WebClient 类仅支持 HTTP 和 HTTPS 方案(当通过流进行下载时)以及 FILE 方案(当下载纯 XAML 时)。跨方案访问被严格禁止,因此,如果宿主页面是通过 HTTP 下载的,则无法将 WebClient 指向 HTTPS 资源(反之亦然)。WebClient 请求通常可以进入不同浏览器区域内的某个 URL,但无法从一个 Internet 区域移至具有更严格限制的另一个区域。Silverlight 目前仅在 Windows 操作系统中支持区域。
最后,仅当远程站点通过在其根目录下托管适当的 XML 文件来加入时,才支持跨域访问。另外还要注意,跨域访问对 HTTPS-to-HTTPS 方案不起作用。
同一个 WebClient 对象无法同时处理多个请求。应检查 IsBusy 属性(这是一个布尔值)以确定您的代码在通过同一个 WebClient 实例发出新请求时是否安全。如果使用多个 WebClient 对象(可能在不同的线程上),则可以同时启动多个下载。
Tags:Silverlight 管理 动态
编辑录入:爽爽 [复制链接] [打 印]- ››动态的改变IFrame的高度
- ››动态4种方法加载JS脚本
- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››管理/var/spool/clientmqueue/下的大文件
- ››Silverlight for Windows Phone 7开发系列(1):...
- ››Silverlight for Windows Phone 7开发系列(2):...
- ››Silverlight for Windows Phone 7开发系列(3):...
- ››Silverlight for Windows Phone 7开发系列(4):...
- ››动态调用对象事件
- ››动态创建控件支持事件响应并可保存与读取
- ››Silverlight for Symbian
更多精彩
赞助商链接