最近做的项目中需要用web server上的ASP.NET程序来访问任外一台文件服务器上的文件.
路径是\\192.168.1.10\\Lucene,几经周折无果,NND.
最络用下面的方法解法,先在10这台机上建一个admin_test帐号并且加入了administrator组
然后在asp.net的web server机上建和10相同帐号与密码的用户.
在IIS建一个站点,并建一个虚拟目录a它指向\\192.168.1.10\Lucene,注意这里
"点连接为"然后选特定用户,访问要用特定用户,输入刚才在web server上建的帐号与密码.确定后
可以点击"测试设置"看到,授权证验通过了.
在一个page 上测试下面代码
string path = Server.MapPath(@"a"a.txt");
Response.Write(path);\\这里输出的应是UNC路径
if(System.IO.File.Exists(path))
{
Response.Write(System.IO.File.ReadAllText(path));
}
在asp.net程序的web.config中要加入
<identity impersonate="true" userName="admin_test" password="`123asd" />
放在</system.web>前
注意测试时只能用IIS来测,不能用VS调试方式,或用VS里的浏览器来测.
基本原理,是IIS的W3P进程模似WINDOWS程序提交自己本机的用户到10机器上请求通过验证.