而表单的处理器将保存在一个叫ServinSecure的目录中启动微软管理控制台(Microsoft Management Console,MMC)然后用右键击Default Web Site创建一个新的虚拟目录。选择New/Virtual Directory。创建一个叫"ServinSecure"(没有引号)的虚拟目录。你还需要提供一个以前在你的网络服务器文件系统中创建的文件夹的物理路径。一旦你创建了这个虚拟目录,用右键击中在MMC上新创建的虚拟目录,选择Properties显示虚拟目录的属性。
选择Directory Security标签,选择Edit按钮,接着选择Enable anonymous…,编辑这个资源的身份确认方法。这时候会出现一个标题为Authentication Methods的对话框。选择Edit按钮,接着选择Account used for Anonymous Access。出现一个题为Anonymous User Account的最终对话框。把用户名的缺省值从IUSR_机器名>改成管理员,取消选定密码同步,并为管理员帐户提供密码。在剩余的每个对话框上选择OK使改变生效。
下面是对话框的图形:
ASP代码
让我们一起看一下代码。我们将为我们的应用程序定义一些变量。创立一个叫CreateDirectory.asp的动态服务器页(Active Server Pages ,ASP)文件,在其中插入以下代码: %@ Language=VBScript %> % Option Explicit %> HTML> HEAD> META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> /HEAD> BODY>
% Dim strVirtualDirectoryName 'IIS虚拟目录名 Dim bolInProcessApplication '处理应用标记中的IIS Dim objIIS 'ADSI IIS对象 Dim strVirtualDirectoryPath 'IIS虚拟目录路径 Dim objFileSystem 'VBScript文件系统对象 Dim strOwner 'NT文件夹所有者 Dim objVirtualDirectory 'ADSI IIS虚拟目录对象 Dim bolScriptPermissions 'IIS脚本权限标记 Dim strHTTPReferer 'IIS参考页 Dim strServerName 'NT本地机器名 Dim objWSH 'Windows脚本主机对象 Dim objRTC '返回 Dim strACLCommand '设置ACLs的命令行串
' Does this IIS application already exist in the metabase?
On Error Resume Next Set objIIS = GetObject("IIS://localhost/W3SVC/1/Root/" strVirtualDirectoryName)
If Err.Number = 0 Then Response.Write ("An application with this name already exists. Click ") Response.Write ("A HREF=http:// " strServerName " /servin/default.asp>") Response.Write ("here/A> to choose a different name.") Response.End End If
Set objIIS = Nothing 现在我们将使用IIS管理对象在meta数据库中创建IIS应用程序。
'创建IIS应用程序 Set objIIS = GetObject("IIS://localhost/W3SVC/1/Root") strVirtualDirectoryPath = objIIS.Path "\" strVirtualDirectoryName 使用VBScript的FileSystemObject对象,我们将测试文件夹是否存在于这个文件系统;如果不存在,我们将使用CreateFolder命令创建它。 Set objFileSystem = Server.CreateObject("Scripting.FileSystemObject")
'Test to see if the folder exists in the filesystem. If not, create it
On Error Resume Next Set Folder = objFileSystem.GetFolder(strVirtualDirectoryPath) If Hex(Err.number) = "4C" Then objFileSystem.CreateFolder strVirtualDirectoryPath End If
我们兴奋的发抖,发现了文章Q135268:How to Use CACLS.EXE in a Batch File ( http://support.microsoft.com/support/kb/articles/q135/2/68.asp )。啊哈,好的老DOS重定向。使用通道传输一个Y给CACLS.exe代表Yes。
现在是新闻 由于我们在每一期ASP专栏中收到的热烈的反响,我们将把我们的栏目专门用于这种技术。可以预见的变化是,我们将介绍著名的Jeff Sandquist。那么有什么让人伤感的呢?Tom Moran将离开Servin' It Up--但是如果你将来在其他地方看到他时不要感到太惊奇。
Jeff Sandquist(微软最好的法裔加拿大人之一)是开发者支持的Active Server Pages扩大组成员之一,也是Visual InterDev MVP程序( http://support.microsoft.com/support/supportnet/supportpartners/mvps/brochuregeneral.asp)的主要负责人。