有个部落

一晃就半个十年,思念如潮...
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

如何让ASP.NET访问网络盘

Posted on 2011-03-01 23:16  Leo.W  阅读(301)  评论(0编辑  收藏  举报

最近工作中要解决一个问题, 就是让ASP.NET访问网络盘, 读取里面的PDF文件并在浏览器中将其打开.

 

刚刚开始以为很简单, 也就是直接映射网络硬盘, 然后直接调用Directory.GetFiles函数了事, 结果, 这个事情就搞了几天, 原因是函数GetFiles一直返回不了值, 因为ASP.NET不够权限访问网络盘. 这样就只能用impersonate了, 但impersonate再怎么用, 也是一直报错, 无法得到想要的结果

 

一直baidu, google, 不果, 终于, 集合各家所长, 问题解决了

先假设网页所在的服务器为websvr, 网络盘所在的服务器为filesvr

1. 在filesvr上创建一个可以访问该网络盘的新用户, 假设为test, 密码为1234

2. 同样, 要在websvr上面创建一个相同的用户test, 密码也要一模一样, 为1234 (注: 如果带字母, 很明显, 大小写也要一样啦)

3. 剩下事情就很简单了, 直接用ASP.NET的impersonate, 在web.config里面加入<identity impersonate="true" username="test" password="1234"/>

 

唯一不妥的地方就是把username & password明文暴露在外了, 当然, 由于这个user/pwd也不是什么重要的系统管理员身份, 结果还是可以接受的

不过, 测试的结果只通过了UNC格式的网络文件路径, 对于映射网络硬盘, 还是不行, 但目前也只能先接受这个结果了