IIS访问共享目录及执行脚本的配置方法(How to access shared files by IIS)

本文详细介绍了如何在Web服务器与共享资源服务器之间建立安全的共享路径,包括用户账户建立、共享位置建立及权限设置,以及解决在配置过程中遇到的安全异常和错误的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 环境

1、Web服务器 WebServer :192.168.100.20
2、共享资源服务器 ShareServer :192.168.100.10

配置

一、共享账户的建立

1、在 WebServer 上新建一个用户以访问 ShareServer 上的共享目录,为了web文件能正常运行,同时又避免使用户拥有过高的权限,我们可以直接把该用户归入 Guests(win2003中) 组,或者 IIS_IUSRS(win2008中) 组内,这样就一举多得了。我这里建立的用户名为 IIS_ShareUser ,密码为 123456。

2、在 ShareServer 中也建立一个同名同密码的用户(必须一致,否则在UNC验证的时候会无法登陆)。这里用户名也应该为 IIS_ShareUser ,密码为 123456,也归入Guests组中。

二、共享位置的建立

1、ShareServer 中使用文件夹共享工具,共享出一个目录,共享名为 public ,共享权限设置为 Administrators 组 读取+写入,IIS_ShareUser 用户 读取(如果需要存东西,就加上 写入 权限);这里 Administrators 用户必须拥有 读取+写入 权限,否则在 WebServer 里使用IIS直接设置的时候会提示无法保存设置。

2、共享位置的文件夹安全设置也必须加入 IIS_ShareUser 的 读取运行 权限,另外还需要加入IIS进程用户的 读取运行 权限,这里不再描述运行IIS站点所需要的 文件夹安全 权限设置。

三、IIS中引用共享目录

1、WebServer 中IIS里建立站点或虚拟目录,路径指向 \\192.168.100.10\public ,连接认证用户手动输入为 IIS_ShareUser ,密码 123456。当这一步完成的时候,您可以通过web方式访问该站点或虚拟目录中的来自 ShareServer 共享目录的资源,但是 ASP.Net 还没有权限执行。

2、ASP.Net的权限设置:从站点根目录下打开 web.config 文件,在 <system.web> 节点以内,加入以下内容:<identity impersonate="true" userName="IIS_ShareUser" password="123456" />。其实就是修改了 ASP.Net 执行的认证方式,把认证方式修改为 ASP.Net模拟用户 ,这样就能让 ASP.Net 通过刚才建立的共享账号执行和访问 ShareServer 中的资源了。

附注

1、本文中的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:"IIS_ShareUser" -p:"123456"

备注:这里的AspNetIdentityAPP\identity 可以根据你个人的爱好来设置,只要在读取的地方对应就行了。成功执行后打开注册表编辑器,打开目录 HKLM\SOFTWARE\AspNetIdentityAPP\identity 会看到 userName 和 password 已经被系统加密了。

2、授予IIS进程用户权限,以方便IIS用户读取这个加密后的配置,右键-->权限,加入 NetWork Service组(如果是WIN2003以下版本,IIS进程用户应为ASPNET) 读取 权限。

打开站点根目录下的 web.config ,把 <identity impersonate="true" userName="IIS_ShareUser" password="123456" /> 替换为

<identity impersonate="true" userName="registry:HKLM\SOFTWARE\AspNetIdentityAPP\identity\ASPNET_SETREG,userName" password="registry:HKLM\SOFTWARE\AspNetIdentityAPP\identity\ASPNET_SETREG,password" />

保存退出即可,这样就完成了整个过程,安全性也得到了提升。

错误

消息 1

安全例外说明: 该应用程序试图执行安全策略不允许的操作。若要授予此应用程序所需的权限,请与您的系统管理员联系,或更改配置文件中的应用程序的信任级别。
异常详细信息: System.Security.SecurityException: 安全错误。

消息 2


在服务器错误 / ApplicationName 应用程序。
分析器错误说明: 该请求提供服务所需资源的分析过程中出现错误。请检查下列特定的分析错误详细信息,并适当地修改源文件。
分析器错误消息: 无法加载类型 ApplicationName.Global。


解决方案

若要解决此问题,授予 $ 远程共享的 FullTrust 权限执行以下操作:
在 Web 服务器上打开管理的工具,然后双击 Microsoft.net 框架配置。
展开 运行库安全策略,展开 计算机,然后再展开 代码组。
用鼠标右键单击 All_Code,然后单击 新建。
选择 创建新的代码组。使您的代码组与应用程序共享的名称的相关名称。
单击 下一步 选择此代码组的条件类型 列表中选择 URL。
在 URL 框中键入下面的格式中共享的路径:
file:////\\ 计算机名 \ 共享名 \ *
注意computername 替换为承载远程共享的计算机的名称。 sharename 替换该共享的名称。
单击 下一步。在下一页上选择 使用现有权限集,选择,然后选择 FullTrust。
单击 下一步,然后单击 完成。
重新启动 Microsoft Internet Information Services (IIS) 重新启动 ASP.NET 辅助进程。
如果未显示在 管理工具 下 Microsoft.net 框架配置,您可以安装.net 框架 SDK 添加 Microsoft.net 框架配置。
或者运行以下命令来进行更改:
Drive:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -m -ag 1 -url "file:////\\computername\sharename\*" FullTrust -exclusive on

 

转载网址: http://hi.baidu.com/%B4%F3%CE%B0/blog/item/066b49fb6c806973034f568d.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值