最近接到一个需求要求能访问其他机子上的文件,本来以为用网络映射盘映射过来然后就和读取本地文件一样了,没想到还有权限问题要解决。查找了下资料,现把解决方法整理如下:

  1. 当然是映射网络地址了,假设这里映射为“Z:\”,一般为了安全会提供一个用户名和密码给你,假设为 user1和pwd1
  2. 在iis里添加一个虚拟目录,假设为“/out”,指到“Z:\”
  3. 在windows用户管理里添加一个用户,用户名和密码容上面提供的用户名和密码(在这里为user1和pwd1),然后将此用户改为administrator(即管理员)组,如果有必要可以限制此用户远程登录机器,这样可以保证一定的安全性。
  4. 在需要读取映射盘的目录上加一个web.config,在system.web节点下添加一个节点:<identity impersonate=”true” userName=”user1″ password=”pwd1″/>(用户名和密码同上)

这样所有的设置就好了,测试下读取/out目录中的内容:Directory.Exists(Server.MapPath(“/out”));,应该是放回true了