有个部落

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

如何让ASP.NET访问网络盘

Posted on 2011-03-01 23:16  Leo.W  阅读(311)  评论(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格式的网络文件路径, 对于映射网络硬盘, 还是不行, 但目前也只能先接受这个结果了