是这样的路径\\218.118.18.18\共享\a.txt,就是要能够用这样的方法可以读取到
File.ReadAllBytes(filePath);
或者          FileInfo f = new FileInfo(filePath);
        FileStream fs = f.Open(FileMode.Open, FileAccess.Read, FileShare.Read);
        StreamReader sr = new StreamReader(fs);
        string s = sr.ReadToEnd();
        sr.Close();
        fs.Close();我在开发中,是可以读取到的,因为vs是以administrator身份运行的,在网上找到一种方法是在web.config中配置
<identity impersonate="true" userName="test" password="test"/>但觉得这样不太好,这样做了以后整个网站是以这个账户在运行,只要密码改了整个网站就不能访问了,极大的不安全,asp.net默认以最低权限运行
我现在只要这段代码以这个用户访问,能不能在读取这个文件时模拟这个用户

解决方案 »

  1.   

    你可以用代码临时设置权限,参考
    http://dotnet.aspx.cc/file/Upload-Files-TO-UNC-Share-Using-ASP.NET.aspx
    后面的代码
      

  2.   

    谁说发布到IIS就不能访问共享文件了?只要你的共享文件夹对Everyone开放“读取”权限就够了。对于1楼提到的方法,当你需要往共享目录写入的时候才需要这么做。至于2楼提到的方法,绝对不可取。让网站运行在“本地系统”账号下面是一件多么危险的事情啊!假设某人通过SQL注入在你的网站里面加一个自己的页面,那么他想干吗就能干吗了。
      

  3.   


    但是不能给erveryone读取权限,这个共享目录文件不能开发erveryone读取权限,只能用test用户访问