在ASP.NET中访问远程资源的问题

近期的一个项目是对文档进行管理的,程序通过UNC Path访问远程服务器的Shared Folder上传或者读取文档。
开发阶段我们一般都使用VS.NET自带的服务器调试,而这个服务器是以当前登录用户的身份运行的,也就是说如果我们事先访问过相应的Shared Folder可能就会保留了相应的授权,程序因此可以顺利的访问它里面的文件。但是如果将项目部署到IIS情况则发生了变化,程序没有了访问远程的Shared Folder的权限。为了解决这个问题,我们最初使用了一个方案,即启用Guest帐户并且在相应的Shared Folder上给予Guest读取和写入权限。但这样的方式安全性可想而之,任何用户都可以修改本应由程序管理的文档。
为了解决这个问题,这两天又研究了一下。其实方法很简单。
首先文件服务器和Web服务器必须在域中。
默认情况下IIS以machine\ASPNET帐户的身份运行,我们在web.config中定义
<identity impersonate = “true” username=”Domain\UserName” password=”pword”/>
这样可以让程序以此指定的域帐户身份执行。另外可能需要给予此域帐户ASP.NET临时文件夹的写入权限。
下面的操作可想而之,在FileServer上相应的文件夹上给予这个域帐户读取和写入权限。完成。

这东西没什么技术含量,但是算是一个小技巧吧。有不正确的地方欢迎提出。

posted on 2008-07-03 19:53  RyanLu  阅读(537)  评论(0编辑  收藏  举报