跨域WEB Service 调用(摘自ASP.NET高级编程第三版)
2011-10-12 10:44 沐海 阅读(846) 评论(0) 编辑 收藏 举报调用另外一个站点允许的话应该有一个策略文件明确的相互允许。
如果把WEBSERVICE和 ASP.NET整合到一个项目中。这个策略文件不使用和可以。按道理说为了更好的扩展性,应该写出策略文件,但是他的作用是(什么域被允许访问你的WEB服务器。)所以使用时最好考虑好项目中ASP.NET文件系统的安全性。
1.创建名为clientaccesspolicy.xml文件,并把它放在网站根目录下。(注:此文件一般使用在Silverlight调用时。)
Silverlight允许你没有任何限制的从一个WEB服务上调用另一个位于同一个WEB站点的WEB服务,
如果要调用位于另外一个WEB站点的WEB服务。则必须要有一个策略文件。
clientaccesspolicy.xml文件声明了什么域被允许访问你的WEB服务器。
<?xml version="1.0" encoding="utf-8" ?> <access-policy> <cross-domain-access> <policy> <allow-from http-request-headers="*"> <domain uri="*"/> </allow-from> <grant-to> <resource path="/" include-subpaths="true"/> </grant-to> </policy> </cross-domain-access> </access-policy>
允许任意访问。可以进行任意的HTTP请求,包括“下载WEB页面” 所以要注意,如果WEBService的项目单独放置,安全性比较高。如果WEBservice和ASP.NET WEB程序放在一起,这个策略文件最好不要添加。以防其他的权限出现漏洞。
注:此文件一般使用在Silverlight调用时。
因为,winform和服务端应用程序---无论创建什么样的策略文件,它们都能够做一个普通用户可以做的事情,这意味着他们能够下载所有公开内容。
另外,你可以在特定的域中限制访问在WEB页面上运行的Silverlight应用程序。;
比如我的webservice目录叫做WSProject,引用地址是http://localhost/WSProject/webservice.asmx,
那么silverlight不是在http://localhost/WSProject这个目录下找crossdomain.xml和clientaccesspolicy.xml,而是在http://localhost/下找这两个文件.
所以假如你的IIS默认目录是C:\inetpub\wwwroot的话,服务文件是部署在C:\inetpub\wwwroot\WSProject下,那么crossdomain.xml和clientaccesspolicy.xml这样的文件一定要放在C:\inetpub\wwwroot而不是http://localhost/WSProject.
另外更多的时候,对于初学者做相关教程的时候,按照教程里的步骤,最后点VS2008里运行的时候,通常是把silverlight程序作为启动项目.我在做到这里的时候就遇到了本文所涉及到的问题.我发现这个时候在项目里添加crossdomain.xml或clientaccesspolicy.xml是无济于事的.VS的小型服务器会给你提供这样的测试环境,http://localhost:端口号/项目名/网页名,如前所述是注定找不到这两个文件的,所以,还是把服务文件先部署到IIS上然后再测试吧.
关于silverlight和flash为什么都需要这样的文件,我还不是很理解,不过可能也是类似于asp.net中的fileupload控件指定文件的那个属性为什么只能是只读一样,肯定是有它的道理的.慢慢去体会了.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述