silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverlight 跨域socket大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

http://msdn.microsoft.com/en-us/library/cc645032(Vs.95).aspx 一切都是临时的,beta2相对于beta1改了很多,不知道正式发布时是否还会改变。 翻译的作用是备忘。 Silverlight 2 beta 支持2种访问远程服务器的方式: System.Net命名空间中的WebClient和http类。这些类使用http或者httpS访问。

http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx

一切都是临时的,beta2相对于beta1改了很多,不知道正式发布时是否还会改变。

翻译的作用是备忘。

Silverlight 2 beta 支持2种访问远程服务器的方式:

System.Net命名空间中的WebClient和http类。这些类使用http或者httpS访问。

System.Net.sockets命名空间中的Socket类。这些类提供更低层次的socket接口,可以用在更普通的网络通讯应用中。

这两种情况都需要提供安全机制以防止silverlight程序发起未经允许的连接。潜在风险包括

DOS攻击:大量的远程PC用来攻击一个特定的站点

DNS改写攻击:把受害站点的DNS该写为silverlight源站点,从而让silverlight访问非源站点

反向连接攻击:让用户的silverlight访问某个远程节点,从而攻击者可以通过此连接访问用户的私有网络(这个攻击的模式是,用户访问了一个恶意silverlight站点,下载了silverlight并运行,该silverlight建立一个到私有网络的连接,例如内部file server,从而实现偷窃内部file server数据的功能

Silverlight设计出了防止以上的攻击之外,还立足于提供管理员更好的控制。

原有的设计是仅允许silverlight访问源站点。beta1的这个安全模型仅仅允许silverlight通过socket访问下载的那个站点。这个源站点可以是localhost,如果这个silverlight直接从文件中打开的话。

beta包含了跨域连接的支持从而允许访问非源站点。这个重要特性允许silverlight程序使用已有的web service。Silverlight 2 Runtime在允许一个网络连接之前,需要首先从该网站下载一个安全策略文件。这个安全策略文件仅影响WebClient和http类的跨域网络访问。WebClient和http在访问源的时候,无须安全策略文件

对于socket,这个安全策略系统不仅影响跨域访问,也影响源访问。即便是源访问,也需要安全策略。这和beta1不一样。beta1中源访问总是被允许的。

安全策略系统基础

Silverlight 存在2种安全策略文件

Flash policy file - Adobe Flash所使用的crossdomain.xml文件。这个策略文件仅仅用于WebClient和http类。

Silverlight policy file - 可以用来在Web/Socket两种。该文件和Flash策略文件有不同的格式。

在允许到某个网络资源的连接之前,Silverlight2 Runtime会试图从该网络资源下载一个安全策略文件。不同的访问方式有不同的下载方式。

如果连接是WEB跨域,Silverlight2 运行时使用http协议下载安全策略文件。Silverlight2 运行时首先试图从目标域的根下载Silverlight策略文件clientaccesspolicy.xml,如果能获得这个文件(即便解析该文件出现错误),它也用该文件做跨域策略文件。如果找不到该文件,Silverlight运行时试图从目标域的根下载flash策略文件crossdomain.xml。这个flash策略文件必须允许连接所有域。

如果是socket连接(跨域或者源访问),Silverlight2运行时试图连接目标站点的943端口(固定端口)。如果可以建立,Silverlight运行时发送一个特殊的字符串 到服务器以获得策略文件。Silverlight2运行时会等待目标站点返回Silverlight策略文件。如果返回了(即便解析出错),也会用作策略文件

如果策略文件正确解析,并且保证了权限,连接会建立。否则,连接以及以后的连接均被阻止。

一个socket连接的限制是服务器端口必须在4502-4534之内。如果服务器提供服务器的端口不在其内,可以用程序@L_801_57@(例如ssh)

为WebClient/http部署安全策略文件,系统管理员需要配置web service,以便可以下载策略文件

为socket部署安全策略文件,系统管理员需要配置一个单独的认证服务。

如下是一个开放socket 4502~4506端口的策略文件。必须listen在943端口。(这个问题很令人郁闷,这个绑定冲突怎么解决?)

 
 

 
 @H_618_78@
如果发现943被bind,kill掉该process,启动自己的server,同时策略文件允许所有。

大佬总结

以上是大佬教程为你收集整理的silverlight 跨域socket全部内容,希望文章能够帮你解决silverlight 跨域socket所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。