关闭

IIS7.0站点/虚拟目录中访问共享

2231人阅读 评论(0) 收藏 举报
分类:

目的:实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上)

准备工作
1.运行组策略编辑器(gpedit.msc);

找到本地安全策略-本地策略-安全选项子项中的:网络安全:LAN管理器身份验证级别,默认是“没有定义”,更改为“发送LM和NTLM响应”。

2.共享资源服务器为 ShareServer,IP地址为:192.168.100.10;
3.Web服务器为 WebServer,IP地址为:192.168.100.20

详细步骤:

一、共享账户的建立

  1. 1.在WebServer上建立一个用户名,方便使用该用户读取ShareServer上的共享目录,我们可以直接把该用户归入IIS_IUSRS组内。在这里我们建立名IIS_SHARED,密码123456;
  2. 2.在ShareServer中也建立一个同名的密码的用户(必须一致,否则在UNC验证的时候会无法登陆)。这里用户名也应该为 IIS_SHARED,密码为 123456,也归入IIS_IUSRS组中;

二、共享位置的建立

  1.  ShareServer 中使用文件夹共享工具,共享出一个目录,共享名为 web,共享权限设置为 Administrators 组 读取+写入,IIS_SHARED用户 读取(如果需要存东西,就加上 写入 权限);
  2. 这里 Administrators 用户必须拥有 读取+写入 权限,否则在 WebServer 里使用IIS直接设置的时候会提示无法保存设置。
    共享位置的文件夹安全设置也必须加入 IIS_SHARED的 读取运行 权限
  3. Window2008 文件夹共享需要设置一下,不像XP那么简单,这方面的资料蛮多的,我就不累赘了^_^;

三、IIS中引用共享目录

  1. WebServer 中IIS里建立站点或虚拟目录,路径指向 \\192.168.100.10\web,连接认证用户手动输入为 IIS_SHARED,密码 123456。
    当第1步完成的时候,您已经通过web方式访问该站点或虚拟目录中的来自 ShareServer 共享目录的资源,但是 ASP.Net 还没有权限执行。
  2. ASP.Net的权限设置
    从站点根目录下打开 web.config 文件,在 节点以内,加入以下内容:

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

四、设置目录的安全级别

  1.    进入命令提示窗口执行以下命令,找到.net的下的目录:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\,在该目录下执行:caspol.exe -m -ag 1 -url "file:////\\computername\sharename\*" FullTrust -exclusive on,回车后提示是否执行,键入y回车;
  2. 成功执行命令后,在执行iisreset重启IIS;

     注意:该命令设置目录的执行的安全级别后,就不需要在应用的web.config中设置安全级别了( <trust level="Full" originUrl=""/>)

在一个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));

            }

附注:
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 已经被系统加密了。
我们需要授予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" />
保存退出即可,这样就完成了整个过程,安全性也得到了提升。

IIS错误提示:
 
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

安全性异常  
说明: 应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请与系统管理员联系,或在配置文件中更改该应用程序的信任级别。  

异常详细信息: System.Security.SecurityException: 请求“System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败。

源错误:  

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。   

----------------------------------------------------------------------------------------------------------------------------

因为目录放在存储上,使用的访问方式是共享方式"\\IP\共享目录"所以权限不足……
 
64bit系统:
然后,查了下解决方法,运行:C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\caspol.exe -m -ag 1 -url "file:////\\IP\共享目录\*" FullTrust
 
32bit系统:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -m -ag 1 -url "file:////\\IP\共享目录\*" FullTrust
 
系统提示:
您正在执行的操作将改变安全策略。
确实要执行此操作吗? (yes/no)
 
输入y,如输入yes,会提示策略保存被中止
 
 

显示所有安全策略:
C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\caspol.exe -machine -lg



删除多余的安全策略
C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\caspol.exe -rg 1.6

1.6为显示所有安全策略前的代码

现在把线程池改成经典OK了。


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

IIS站点/虚拟目录中访问共享目录(UNC)

UNC是 Universal Naming Convention 的简称,也叫通用命名规范、通用命名约定。 网络(范指局域网)上资源的完整位置名称。 格式为 \\servername\sharen...
  • minsenwu
  • minsenwu
  • 2013-11-08 22:15
  • 2154

IIS7.0站点/虚拟目录中访问共享

目的:实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上) 准备工作 1.运行组策略编辑器(gpedit.msc); 找到本地安全策略-本地策...
  • dz45693
  • dz45693
  • 2013-12-12 11:56
  • 2231

CentOS虚拟机如何设置共享文件夹,并在Windows下映射网络驱动器?

一、为什么要这么做? 最近在做Linux下的软件开发,但又想使用Windows下的编程工具“Source Insight”。 二、安装环境 本机系统:Windows 7 旗舰版 VMware:...
  • testcs_dn
  • testcs_dn
  • 2014-02-23 15:35
  • 19669

IIS7.0站点虚拟目录中访问共享

  • 2015-11-03 15:08
  • 1.60MB
  • 下载

IIS站点/虚拟目录中访问共享目录(UNC)

准备工作 1.共享资源服务器为 ShareServer,IP地址为:192.168.100.10; 2.Web服务器为 WebServer,IP地址为:192.168.100.20 详细步骤: ...
  • woshisadshiwo
  • woshisadshiwo
  • 2011-10-19 19:54
  • 7861

配置IIS:建立虚拟目录或站点

  • 2011-01-10 17:15
  • 135KB
  • 下载

IIS7中的站点、应用程序和虚拟目录详细介绍

这里说的不是如何解决路径重写或者如何配置的问题,而是阐述一下站点(site),应用程序(application)和虚拟目录(virtual directory)概念与作用,已及这三个东西在IIS6与I...
  • whatday
  • whatday
  • 2014-11-21 09:42
  • 2618

C#创建IIS站点或者虚拟目录

using System; using System.Collections.Generic; using System.Text; using System.DirectoryServices...
  • lbuskeep
  • lbuskeep
  • 2012-02-24 07:10
  • 2798

IIS 相关概念(站点、虚拟目录、应用程序池、隔离模式、W3WP.EXE、Web Gargen) 及 IIS 6的ASP.net请求处理过程

基本概念:1. 站点程序:在IIS中我们所新建的站点,可以为其配置ASP.net以及应用程序池的版本。2. 虚拟目录:用来将不同的文件夹中的内容通过虚拟目录组织到同一个文件夹中,相当于一个应用程序,也...
  • DavidInternet
  • DavidInternet
  • 2011-03-16 19:19
  • 1583

问题重重的WINDOWS SERVER 2008+IIS7.0 站点发布

今天在服务器上发布一个WEB站点,折腾了一个上午。我把过程中碰到的问题记录下来,以备以后参考。 这次发布的服务器环境是WINDOWS SERVER 2008(x64)+SQL SERVER 200...
  • conanhhy
  • conanhhy
  • 2014-02-17 16:19
  • 939
    个人资料
    • 访问:4045197次
    • 积分:44224
    • 等级:
    • 排名:第89名
    • 原创:420篇
    • 转载:612篇
    • 译文:1篇
    • 评论:218条
    最新评论