而表單的處理器將保存在一個叫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專欄中收到的熱烈的反響,我們將把我們的欄目專門用于這種技術??梢灶A見的變化是,我們將介紹著名的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)的主要負責人。