Windows 2008 R2 IIS 7.5 部署访问 Linux Samba资源

 Windows 2008 R2 IIS 7.5 部署访问 Linux Samba资源

随着资源内容的增大和访问量的增大,使用远程存储提供内容供IIS调用的方式越来越普及。
远程存储的设备种类很多,应用和协议也多样化。从成本考虑,自建一个远程存储是比较节约的。
我们采用在CentOS上搭建部署Samba的方式提供远程存储访问,关于Samba的搭建部署请参考我其他的博文。
这里重点说一下在IIS上的几个注意点。
1、要在windows里创建对应于samba的用户及组,例如samba中该资源的授权用户是smbuser,组是smbgroup,需要在windows中创建同样的用户及组,用户密码要和samba中设置的一样,因为这个用户不仅用于windows的认证,同时要用于samba的认证。
2、IIS网站的基本设置中,点击“连接为”,路径凭据设置为特定用户,用户是刚创建的samba用户,示例为smbuser。
3、IIS网站的基本设置中,物理路径设置的方式是 ip共享名path ,不要在系统中映射成本地磁盘,再设置成本地路径方式。
此时点击测试设置,应该就可以全部通过测试,此时就可以通过远程存储提供内容进行访问了。

ASP.Net的权限设置

1、将samba的用户添加到IIS_IUSERS用户组里

2、从站点根目录下打开 web.config 文件,在 <system.web> 节点以内,加入以下内容:

<identity impersonate="true" userName="smbuser" password="smbpassword" />

其实就是修改了 ASP.Net 执行的认证方式,把认证方式修改为 ASP.Net模拟用户 ,这样就能让 ASP.Net 通过刚才建立的共享账号执行和访问 Samba 中的资源了。

附注:
本文中的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:SOFTWARE\AspNetIdentityAPP\identity -u:"smbuser" -p:"smbpassword"
备注:这里的AspNetIdentityAPP\identity 可以根据你个人的爱好来设置,只要在读取的地方对应就行了。
成功执行后打开注册表编辑器,打开目录 HKLM\SOFTWARE\AspNetIdentityAPP\identity 会看到 userName 和 password 已经被系统加密了。
我们需要授予IIS进程用户权限,以方便IIS用户读取这个加密后的配置,右键-->权限,加入 NetWork Service组(如果是WIN2003以下版本,IIS进程用户应为ASPNET) 读取 权限。
打开站点根目录下的 web.config ,把 <identity impersonate="true" userName="smbuser" password="smbpassword" /> 替换为
<identity impersonate="true" userName="registry:HKLM\SOFTWARE\AspNetIdentityAPP\identity\ASPNET_SETREG,userName" password="registry:HKLM\SOFTWARE\AspNetIdentityAPP\identity\ASPNET_SETREG,password" />
保存退出即可,这样就完成了整个过程,安全性也得到了提升。

标签: IIS Samba
评论: 0 | 引用: 0 | 阅读: 10534