目的:实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上)
准备工作
1.共享资源服务器为 ShareServer,IP地址为:192.168.100.10;
2.Web服务器为 WebServer,IP地址为:192.168.100.20
详细步骤:
一、共享账户的建立
1.在WebServer上建立一个用户名,方便使用该用户读取ShareServer上的共享目录,我们可以直接把该用户归入IIS_IUSRS组内。在这里我们建立名IIS_SHARED,密码123456; 2.在ShareServer中也建立一个同名的密码的用户(必须一致,否则在UNC验证的时候会无法登陆)。这里用户名也应该为 IIS_SHARED,密码为 123456,也归入IIS_IUSRS组中; 二、共享位置的建立
ShareServer 中使用文件夹共享工具,共享出一个目录,共享名为 web,共享权限设置为 Administrators 组 读取+写入,IIS_SHARED用户 读取(如果需要存东西,就加上 写入 权限); 这里 Administrators 用户必须拥有 读取+写入 权限,否则在 WebServer 里使用IIS直接设置的时候会提示无法保存设置。 共享位置的文件夹安全设置也必须加入 IIS_SHARED的 读取运行 权限
Window2008 文件夹共享需要设置一下,不像XP那么简单,这方面的资料蛮多的,我就不累赘了^_^; 三、IIS中引用共享目录
WebServer 中IIS里建立站点或虚拟目录,路径指向 \192.168.100.10web,连接认证用户手动输入为 IIS_SHARED,密码 123456。 当第1步完成的时候,您已经通过web方式访问该站点或虚拟目录中的来自 ShareServer 共享目录的资源,但是 ASP.Net 还没有权限执行。
ASP.Net的权限设置 从站点根目录下打开 web.config 文件,在 <system.web> 节点以内,加入以下内容:
<identity impersonate="true" userName="IIS_SHARED" password="123456" />
其实就是修改了 ASP.Net 执行的认证方式,把认证方式修改为 ASP.Net模拟用户 ,这样就能让 ASP.Net 通过刚才建立的共享账号执行和访问 ShareServer 中的资源了。
附注: 本文中的ASP.Net权限设置内容中,直接把用户和密码都写入 web.config 文件内,这样做安全性不是很好,可以使用以下方法提高安全性: 从微软下载工具 aspnet_setreg.exe (附送下载地址:http://download.microsoft.com/download/2/9/8/29829651-e0f0-412e-92d0-e79da46fd7a5/aspnet_setreg.exe) 下载后请解压,这是一个压缩包。 在 WebServer 中使用 aspnet_setreg.exe 执行以下指令: aspnet_setreg.exe -k:SOFTWAREAspNetIdentityAPPidentity -u:"IIS_ShareUser" -p:"123456" 备注:这里的AspNetIdentityAPPidentity 可以根据你个人的爱好来设置,只要在读取的地方对应就行了。 成功执行后打开注册表编辑器,打开目录 HKLMSOFTWAREAspNetIdentityAPPidentity 会看到 userName 和 password 已经被系统加密了。
我们需要授予IIS进程用户权限,以方便IIS用户读取这个加密后的配置,右键-->权限,加入 NetWork Service组(如果是WIN2003以下版本,IIS进程用户应为ASPNET) 读取 权限。 打开站点根目录下的 web.config ,把 <identity impersonate="true" userName="IIS_ShareUser" password="123456" /> 替换为 <identity impersonate="true" userName="registry:HKLMSOFTWAREAspNetIdentityAPPidentityASPNET_SETREG,userName" password="registry:HKLMSOFTWAREAspNetIdentityAPPidentityASPNET_SETREG,password" /> 保存退出即可,这样就完成了整个过程,安全性也得到了提升。
四、设置目录的安全级别
进入命令提示窗口执行以下命令,找到.net的下的目录:WINDOWSMicrosoft.NETworkv2.0.50727\,在该目录下执行:caspol.exe -m -ag 1 -url "////\computernamesharename*" FullTrust -exclusive on,回车后提示是否执行,键入y回车; 成功执行命令后,在执行iisreset重启IIS; 注意:该命令设置目录的执行的安全级别后,就不需要在应用的web.config中设置安全级别了(<level trust="full" ulr=""/>)