而表單的處理器將保存在一個叫ServinSecure的目錄中啟動微軟管理控制臺(Microsoft Management Console,MMC)然后用右鍵擊Default Web Site創(chuàng)建一個新的虛擬目錄。選擇New/Virtual Directory。創(chuàng)建一個叫"ServinSecure"(沒有引號)的虛擬目錄。你還需要提供一個以前在你的網(wǎng)絡服務器文件系統(tǒng)中創(chuàng)建的文件夾的物理路徑。一旦你創(chuàng)建了這個虛擬目錄,用右鍵擊中在MMC上新創(chuàng)建的虛擬目錄,選擇Properties顯示虛擬目錄的屬性。
選擇Directory Security標簽,選擇Edit按鈕,接著選擇Enable anonymous…,編輯這個資源的身份確認方法。這時候會出現(xiàn)一個標題為Authentication Methods的對話框。選擇Edit按鈕,接著選擇Account used for Anonymous Access。出現(xiàn)一個題為Anonymous User Account的最終對話框。把用戶名的缺省值從IUSR_機器名>改成管理員,取消選定密碼同步,并為管理員帳戶提供密碼。在剩余的每個對話框上選擇OK使改變生效。
下面是對話框的圖形:
ASP代碼
讓我們一起看一下代碼。我們將為我們的應用程序定義一些變量。創(chuàng)立一個叫CreateDirectory.asp的動態(tài)服務器頁(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文件系統(tǒng)對象 Dim strOwner 'NT文件夾所有者 Dim objVirtualDirectory 'ADSI IIS虛擬目錄對象 Dim bolScriptPermissions 'IIS腳本權(quán)限標記 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 現(xiàn)在我們將使用IIS管理對象在meta數(shù)據(jù)庫中創(chuàng)建IIS應用程序。
'創(chuàng)建IIS應用程序 Set objIIS = GetObject("IIS://localhost/W3SVC/1/Root") strVirtualDirectoryPath = objIIS.Path "\" strVirtualDirectoryName 使用VBScript的FileSystemObject對象,我們將測試文件夾是否存在于這個文件系統(tǒng);如果不存在,我們將使用CreateFolder命令創(chuàng)建它。 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
我們興奮的發(fā)抖,發(fā)現(xiàn)了文章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。
現(xiàn)在是新聞 由于我們在每一期ASP專欄中收到的熱烈的反響,我們將把我們的欄目專門用于這種技術(shù)。可以預見的變化是,我們將介紹著名的Jeff Sandquist。那么有什么讓人傷感的呢?Tom Moran將離開Servin' It Up--但是如果你將來在其他地方看到他時不要感到太驚奇。
Jeff Sandquist(微軟最好的法裔加拿大人之一)是開發(fā)者支持的Active Server Pages擴大組成員之一,也是Visual InterDev MVP程序( http://support.microsoft.com/support/supportnet/supportpartners/mvps/brochuregeneral.asp)的主要負責人。