使用XPathDocument拒绝访问网站外部资源时的两种替代方法

news/2024/5/9 22:18:17/文章来源:https://blog.csdn.net/weixin_34216107/article/details/90095106

XPathDocument对象提供了一种非常方便的加载XML资源的方法,只要被访问的资源路径正确并且当前进程有权限进行访问,则可以直接通过该对象的构造函数加载XML文件,然后以面向对象的方式对XML文件进行操作。如果要访问的XML文件拒绝当前进程以匿名身份进行访问,我们可以通过设置XML文件的访问级别或者赋予程序以更高的安全级别运行来解决这个问题。但是如果要访问的XML文件是外部资源并且我们无权修改访问安全级别,则下面两种方法可以用来尝试。

Capture1231qsqa

 

方法一:尝试使用资源物理路径进行访问

  下面的代码通过Server.MapPath方法将资源的URL转换为服务器上的物理路径,然后使用XPathDocument对象的构造函数进行加载。

1 string url = "http://www.example.com/resource/demo.xml";
2 string sAbsolutePath = HttpContext.Current.Server.MapPath(Server.UrlDecode(url));
3 XPathDocument oXPathDocument = new XPathDocument(sAbsolutePath);

   注意URL中可能包含经过转义后的字符,所以需要通过Server.UrlDecode方法进行decode操作。

 

方法二:尝试以特定用户的身份访问资源

  下面的代码演示了以当前系统用户身份访问XML资源。

复制代码
1 string url = "http://www.example.com/resource/demo.xml";
2 
3 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
4 request.Credentials = CredentialCache.DefaultNetworkCredentials;
5 
6 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
7 StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
8 XPathDocument oXPathDocument = new XPathDocument(sr);
复制代码

  当然你也可以以特定的用户进行访问,如:

request.Credentials = new NetworkCredential("userName""password""domain");

  这样便可以提高当前程序访问XML外部资源的权限。

  


本文转自Jaxu博客园博客,原文链接:http://www.cnblogs.com/jaxu/archive/2011/04/29/2032335.html,如需转载请自行联系原作者


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_732821.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站手工添加一行数据_给数据分析狮看的Python--第2章、数据的获取

给数据分析狮看的Python--第2章、数据的获取给数据分析狮看的Python1、前言通过上一次的分享,我们已经学会了如何安装Python,有了工具我们还缺少数据,今天就来分享如何获取数据。获取数据要么我们手工新建一个要么把外部数据导入到Python中&a…

大型网站架构技术读后感

最近在看趣谈网络协议,顺带看看这本朋友推荐的书,《大型网站技术架构》是由宝架构师李智慧大牛写作的,我把这本书称为“开眼之书”,这本书站在架构的角度讲网站架构,讲的是整体规划和考虑问题的思路,我从事…

chrome扩展程序科学_扩展科学知识的最佳网站

chrome扩展程序科学If you have a thirst for scientific knowledge, there are many websites that can start to quench that thirst. From news about scientific discoveries to resources for teaching science, you can find a wealth of scientific information on the …

预告片下载网站_如何在预告片电影中添加预告片以获得真实的电影院体验

预告片下载网站If you’re a fan of movie trailers, pre-rolls, and the build up of anticipation leading up to the cinematic experience, then we’ve got a treat for you: Plex Media Server makes it dead simple to recreate that theater magic right at home with …

夺命雷公狗—玩转SEO---7---描文本

七、描文本 描文本是链接的一种形式,她非常有利于网站的排名,简单来说就是一个A标签,鼠标点击A标签后直接跳到一个界面,如下图所示 如果点击后A标签中的文字后页面时肯定会跳转到下方所显示链接中的页面去哟~转载于:https://www.c…

浏览器的搜索框如何用HTML实现,移动浏览器中的html搜索框如何响应软键盘搜索按钮事件?手机网页制作哪个好用?如何防止Dreamweaver在手机上访问网站时跳转到手机版?...

移动浏览器中的html搜索框如何响应软键盘搜索按钮事件?手机网页制作哪个好用?如何防止Dreamweaver在手机上访问网站时跳转到手机版?下面就和小编一起来看看吧!移动浏览器中的html搜索框如何响应软键盘搜索按钮事件?那就是输入法的问题。当搜狗遇到那种输入框的时候&#xf…

气流预测网站_如何优化房屋的气流以节省空调费用

气流预测网站Many smart thermostats claim they can save you money on your heating and air conditioning bills. Indeed, you might save a considerable amount of money by getting a Nest or Ecobee3, but they can also cost you more money if your house itself isn’…

小技巧:在线生成按钮Shape的网站

Android Button Make 右侧设置按钮的属性,可以即时看到效果,并即时生成对应的.xml 代码,非常高效(当然熟练的话 自己手写代码更快)

网站链接被微信屏蔽拦截了怎么办?VJump帮你解除屏蔽

出现这种情的原因呢,我相信大家也去了解了很多,但是对于商家来说,我们要避免出现这种情况,或出现了要立马解决。了解原因再去想解决办法是技术的事情。一天没解决,就多一天的损失。原因大同小异,无非是域名…

选择偏好_网站如何记住您的偏好(以及关于Cookie的选择)?

选择偏好How do websites remember your preferences for them (or desire for none), and what about the touchy subject of cookies themselves? Today’s SuperUser Q&A post seeks to shed some light on how cookies work and the information they store for a con…

更改服务器网站安装目录权限,Apache Wind2003 配置网站目录权限小结

Apache Wind2003 配置网站目录权限小结更新时间:2009年09月05日 22:32:03 作者:Apache Windows 2003 配置网站目录权限小结非常简单的权限设置,就是访问网站时会弹出用户名和密码,通过身份验证后可以正常浏览,如下图…

询问HTG:在网站中搜索,Google Play替代品以及双重引导入门

Once a week we round up some of the reader letters we’ve answered and share the advice with everyone. This week we’re looking at how to search within web sites, downloading apps from places other than Google Play, and getting started with dual booting op…

tcp流式传输_收听互联网广播以及下载和流式传输免费音乐的最佳网站

tcp流式传输When was the last time you listened to over-the-air FM radio? There are so many options on the internet for listening to thousands of different radio stations in many different genres and for downloading a lot of music for free. 您上次收听无线调…

rss阅读器_赶上您喜欢的网站的最佳免费RSS阅读器

rss阅读器RSS stands for “Really Simple Syndication” or “Rich Site Summary.” It’s a document specification that allows you to easily collect and organize web-based news and information from websites. RSS reader applications allow you to follow your fav…

win 8 metro交互_将您喜欢的网站固定到Windows 8中的Metro Start屏幕

win 8 metro交互It’s easy to pin apps and folders to the Metro Start screen in Windows 8. What about your favorite websites? Windows 7 allows you to pin websites to the Taskbar. It’s also easy to pin your favorite websites to the Windows 8 Metro Start sc…

谷歌浏览器怎么阻止更新_如何在谷歌浏览器中阻止网站

谷歌浏览器怎么阻止更新Do you find yourself accessing Facebook, Twitter, or other distracting websites when you really should be doing something else instead? Block that website in Google Chrome. Other solutions will let you block websites for children at …

不识别字体_设计师最常用的几个字体网站,解决你苦寻字体烦恼!

大家好,又到了和大家一起学习交流的时间了,今天我们给大家推荐几个设计师经常用到的字体网站。这些字体网站是我经常使用到的,很方便,也很好用,什么样的字体都可以找的到。1、 求字体直通车:http://www.qiu…

java学习就去这56个网站论坛(附各种java学习公众号)

2019独角兽企业重金招聘Python工程师标准>>> java学习不是一蹴而就的,重在平时的积累和阅读,下面这些java学习的主流论坛,是洒家花了一周时间“搜刮”过来的,基本包括了所有java学习的最优质网站,所以&…

使用sql服务器发送贺卡_发送免费电子贺卡的最佳网站

使用sql服务器发送贺卡If you’re looking to send eCards to your friends and family, there are hundreds of websites from which to choose. We’ve done the hard work and scouted the best sites with a widest range of eCards for birthdays, holidays, and other sp…

怎么把网页源码家入hexo博客_利用 Github+Hexo 搭建个人博客网站

↑↑↑点击上方“蓝字”,关注“极客猴”如果你喜欢极客猴,可以把我置顶或加为星标题图:by watercolor.illustrations from Instagram阅读文本大概需要 3 分钟。我之前写过一篇文章《利用GithubJeklly搭建个人博客网站》,利用 Gith…