• Silverlight 中的通信安全访问策略


    Silverlight 支持使用 HTTP/HTTPS (System.Net.WebClient 等) 和 Socket (System.Net.Sockets) 两种方式访问远程服务器,但基于安全原因,对这些网络访问制定了严格的安全策略。

    1. HTTP/HTTPS 访问策略

    (1) 始终允许同域调用。同域是指调用必须使用同一子域、协议和端口,这是出于安全原因以及防止跨域伪造。
    (2) Silverlight 支持访问包含跨域策略文件的网站服务。跨域访问时,Silverlight Application 首先在目标 Web 服务的根路径查找 Silverlight 跨域策略文件 (clientaccesspolicy.xml)。如果没找到(404 Not Found)或发生其他错误,将继续在根路径处查找 Flash 跨域策略文件 (crossdomain.xml)。
    clientaccesspolicy.xml

    Code

    (3) 所有通信都是异步的。

    (4) 仅支持 GET 和 POST 谓词。

    (5) 支持大多数标准请求标头和所有自定义请求标头(必须是跨域策略文件中允许的标头)。

    Code

    (6) 只有 "200 OK" 和 "404 Not Found" 状态代码可用。

    我们尝试用 WebClient 访问一个跨域网站。

    Code

    当目标网站没有提供策略文件时,你会看到错误信息。
    在其根路径放置好 clientaccesspolicy.xml 后,访问正常。

     

    2. Sockets 访问策略

    创建一个供 Silverlight Application 连接的 Socket Server (非同域网站),必须符合以下安全策略。

    (1) 监听 943 端口,为 Silverlight Application 提供策略文件(clientaccesspolicy.xml)。

    (2) Socket Server 的服务端口范围必须在 4502 - 4534 之间。这是 Silverlight Application Socket 连接所允许使用的端口范围,否则连接失败。

    我们写一个简单的 Time Server 作为演示。

    Server CUI

    Code

    如果不启动服务器策略文件服务,或者端口不是 943,你会在客户端获得一个 AccessDenied 错误。
    当然,如果服务器监听端口不再允许范围(4502 - 4534)内,同样也会触发这样一个错误。


    本文来自CSDN博客http://blog.csdn.net/zjfei/archive/2009/07/27/4384368.aspx

  • 相关阅读:
    HashPasswordForStoringInConfigFile中的Md5算法并非常用的Md5算法
    (转)C#实现MD5加密
    pb将datawindow数据导出EXCEL
    (转)笔记320 SQLSERVER中的加密函数 2013-7-11
    Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
    PowerDesigner中Name与Code同步的问题
    (转) PowerDesigner中Table视图同时显示Code和Name
    SQLServer2012在登录远程服务器实例时报错:尝试读取或写入受保护的内存
    PB代码动态解析执行器
    XenServer安全重启xapi的方法
  • 原文地址:https://www.cnblogs.com/ysisl/p/1593493.html
Copyright © 2020-2023  润新知