亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > VBScript > 正文

使用ADSI、ASP和一對魔術戲法自動地創立一個虛擬目錄的方法

2020-06-26 18:05:08
字體:
來源:轉載
供稿:網友
使用ADSI、ASP和一對魔術戲法自動地創立一個虛擬目錄,第二部分 
Tom Moran 和 Jeff Sandquist 
1999年2月22日  


我們回來了。大家翹首以盼的這篇文章的第二部分現在在這兒。并且我想你將花費整個晚上看你的貓清洗自己。 

這個月,Jeff Sandquist和我完成了我們的動態目錄服務接口(Active Directory Services Interfaces ,ADSI)應用程序。如果你來晚了一點,沒有問題;只要見這個系列的Part 1 http://www.microsoft.com/workshop/server/asp/server012599.asp 。上個月,我們確認一個用戶作為特權組的成員。接著我們顯示了一個表單,表單上包括一個帶有該特殊用戶組中每個人用戶名的列表框。這個表單允許我們選取一個用戶,并且為這個用戶的新的虛擬目錄選擇權限?,F在我們將由這個表單獲取數據并在網絡服務器上創立一個新的虛擬目錄,把它定義為一個應用,給出開啟腳本權限的選項,并在文件夾上指定適當的權限。Jeff Sandquist將在這個過程中指導我們。 

在這篇文章的結尾,我們有一個重要的、使人傷感的、足以使地球粉碎的公告。Clinton, O.J., Clemens與之相比一切都顯得蒼白無力。我確信AP會注意到它,但是你將首先看到它。請繼續閱讀。 

展覽之中 

上個月,我們的表格存在于一個叫Servin的虛擬目錄。我們可以使用IUSR_<Machine Name>中的Internet Information Server(IIS)安全環境執行所請求的操作。我們需要一個管理員身份來創建目錄和指定權限。 

我們實現這個目的的一種方法是把IUSR_<Machine Name>賬號遷移到管理員組。而更好的方法是,在Web服務器上創建一個新的虛擬目錄(我們將調用ServinSecure),并且把它設置成在管理員環境中操作,而不是在IUSR_<Machine Name>環境中。我們的表單將保存在Servin目錄中 

而表單的處理器將保存在一個叫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的命令行串 

我們想確保用戶是從我們的表單來的,并且沒有欺騙我們的服務器。我們將檢索HTTPReferer服務器變量和服務器名來測試它。這兒你可以做許多檢查;在我們的測試中不必十分堅固。關于安全站點的優秀文章,請查看由Dmitry Khanine整理的Easy Application State Securely ( http://www.15seconds.com/Issue/990114.htm)。在代碼的結尾插入以下代碼: 
strHTTPReferer = Request.ServerVariables("HTTP_REFERER")  
strServerName = Request.ServerVariables("SERVER_NAME") 

' 我們是從我們的表格來的嗎?如果不是,則拒絕存取 

If strHTTPReferer <> "http://" & strServerName & "/Servin/Default.asp" then 
Response.Write("Access Denied") 
Response.End 
End If 

現在我們的網頁已證實我們的用戶是從我們的表單傳遞結果的,我們可以獲取虛擬目錄(Virtual Directory)、所有者(Owner)和腳本權限(Script Permissions)標記的值。請注意我們是怎樣根據從checkboxScript獲取的值來改變的,如果它被選定,就設為True,如果沒有被選定就設為False。在你的最后一位代碼后插入以下代碼: 
strVirtualDirectoryName = Request.Form("textVirtualDirectory") 
strOwner = Request.Form("selectOwner") 

If Request.Form("checkboxScript") = "on" Then  
bolScriptPermissions = "True" 
Else 
bolScriptPermissions = "False" 
End If 

我們需要確認IIS應用程序是否存在。使用IIS Admin對象,我們檢查是否應用程序早已存在并且把相應的警告傳遞給用戶。 

' 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 

Set objFileSystem = Nothing 

使用Administration對象(在這篇文章中我們多次使用),我們開啟腳本權限(加入用戶選擇了這這選項)并定義虛擬目錄作為一個進程中的應用。 
'在文件系統上創建文件夾 

Set objVirtualDirectory = objIIS.Create("IISWebVirtualDir",strVirtualDirectoryName) 
objVirtualDirectory.AccessScript = bolScriptPermissions 
objVirtualDirectory.Path = strVirtualDirectoryPath 
objVirtualDirectory.SetInfo  
objVirtualDirectory.AppCreate bolInProcessApplication  

現在看一下這個魔術:設置權限。我們確實認為這是很簡單的部分。不幸地是,在ADSI中不存在能為虛擬目錄設置權限的對象。驚慌失措,并且還有一點不舒服的感覺。(或者是由于昨天晚上大吃泰國飯菜引起的?) 

搜索15seconds.com的ADSI列表服務器,發現一篇引用DOS CACLS.EXE文件的通訊( http://listserv.15seconds.com/scripts/wa15seconds.exe?A2=ind9806C&L=ADSI&P=R1861 )并且通過DOS CMD文件使用它。我們認為我們可以為這個功能寫一個Visual Basic封裝并把它卷入一個定制組件(下個月的文章主題),但是一定有一個更快的方法。 

我們在Ian Morris整理的Windows Scripting Host FAQ ( http://wsh.glazier.co.nz/frame.htm )繼續我們的搜索,發現了從Windows Scripting Host?調用DOS命令的幾行代碼。 

我們試圖使用Windows Scripting host從ASP文件調用CACLS.exe,我們的網頁不能執行。應用失敗了。為什么會這樣?我們從DOS命令提示單步調試這個命令發現CACLS.EXE命令在等待我們使用Y作為Yes來確認操作。一定有一種方法使Yes作為缺省值。 

檢查命令行選項沒有發現任何隱藏開關。就這一點,打開瀏覽器,訪問在線支持發現CACLS.EXE好象應該小心應用。 

我們興奮的發抖,發現了文章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文件調用Windows Scripting Host shell的代碼。 

'Set Change Permissions for the developer using CACLS.exe 
strACLCommand = "cmd /c echo y| CACLS " 
strACLCommand = strACLCommand & strVirtualDirectoryPath 
strACLCommand = strACLCommand & " /g " & strOwner & ":C" 

Set objWSH = Server.CreateObject("WScript.Shell") 
objRTC = objWSH.Run (strACLCommand , 0, True) 

Set objWSH = Nothing 

這可能不是可伸縮性最好的解決方案。一個定制組件可以在大型的應用程序上更好的幫助你。如果你需要一個,Artisans軟件有一個免費組件( http://www.softartisans.com/softartisans/safilemanager.html )允許你通過他的對象模型改變文件夾上的權限。(它也有一些其他很酷的特性,例如以點式輸入/輸出圖像,操作.ini文件和更多。) 

我們最終的代碼證實我們所做的一切是值得的。 

Response.Write("<B>Web Application Created Sucessfully</B><BR>") 
Response.Write("Path : "& strVirtualDirectoryPath & "<BR>") 
Response.Write("Script Permissions : "& bolScriptPermissions & "<BR>") 
Response.Write( strOwner & " has been granted change permissions<BR>") 
%> 
</BODY> 
</HTML> 

那就是它。當尋找問題的解答時最重要的使記住使用多種資源。列表服務器,FAQs和微軟知識庫就包含了這一類的文章。 

現在是新聞 由于我們在每一期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)的主要負責人。  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人a级免费视频| 性欧美办公室18xxxxhd| 亚洲精品国产综合区久久久久久久| 亚洲最大的成人网| 欧美国产第二页| 欧美日韩亚洲精品内裤| 日韩不卡中文字幕| 国产午夜精品一区理论片飘花| 欧美极品少妇xxxxⅹ免费视频| 欧美日韩国产一区中文午夜| 国产九九精品视频| 亚洲国产日韩欧美综合久久| 欧美巨乳在线观看| 最近2019中文免费高清视频观看www99| 91精品国产综合久久香蕉的用户体验| 欧美人与物videos| 尤物九九久久国产精品的特点| 91高清在线免费观看| 亚洲成人激情图| 色婷婷久久av| 国产成人免费91av在线| 麻豆精品精华液| 欧美国产亚洲视频| 亚洲国内精品视频| 亚洲激情 国产| 在线观看视频99| 国产精品亚洲综合天堂夜夜| 亚洲视频在线免费看| 精品亚洲夜色av98在线观看| 国产精品video| 亚洲精品成人网| 国产欧美韩国高清| 亚洲精品成人久久久| 日韩欧美在线一区| 亚洲香蕉成视频在线观看| 美女国内精品自产拍在线播放| 日韩精品在线私人| 日本中文字幕不卡免费| 久久久精品美女| 亚洲欧洲日本专区| 日韩亚洲第一页| 最近2019中文字幕在线高清| 国产综合香蕉五月婷在线| 亚洲精品xxxx| www.国产一区| 91精品国产色综合久久不卡98口| 亚洲视频国产视频| 国产精品自产拍在线观看中文| 欧美一区二区三区……| 欧美成年人网站| 欧美性猛交xxxx富婆| 欧美性视频网站| 国产黑人绿帽在线第一区| 欧美小视频在线观看| 国产精品你懂得| 在线精品国产成人综合| 亚洲激情在线视频| 欧美黑人国产人伦爽爽爽| 欧美性xxxx在线播放| 91高潮精品免费porn| 亚洲精品www久久久久久广东| 亚洲人精品午夜在线观看| 欧洲永久精品大片ww免费漫画| 91九色国产在线| 欧美精品成人91久久久久久久| 亚洲精品国产欧美| 国产视频在线观看一区二区| 亚洲日本欧美日韩高观看| 色综合天天综合网国产成人网| 亚洲免费人成在线视频观看| 在线精品高清中文字幕| 欧美日韩在线视频首页| 久久久久国产精品免费| 欧美区在线播放| 亚洲国产精品一区二区久| www.久久久久久.com| 日韩在线观看免费av| 91福利视频在线观看| 黑人巨大精品欧美一区二区免费| 一区二区欧美激情| 中文字幕日韩精品有码视频| 91在线观看免费高清完整版在线观看| 欧美高清在线播放| 久久99久久亚洲国产| 日韩av中文字幕在线免费观看| 日韩欧美在线播放| 国产精品丝袜一区二区三区| 欧美伊久线香蕉线新在线| 日本高清视频精品| 欧美视频第一页| 最近2019年日本中文免费字幕| 久久久www成人免费精品| 成人在线激情视频| 日韩网站在线观看| 亚洲福利在线视频| 亚洲欧美在线播放| 欧美国产日韩一区二区| 国产91精品视频在线观看| 国产精品美女主播在线观看纯欲| 日韩精品中文字幕在线播放| 国产成人高清激情视频在线观看| 亚洲精品免费在线视频| 成人性教育视频在线观看| 97国产在线视频| 国产精品久久av| 国产精品色婷婷视频| 国产日本欧美一区二区三区| 日韩成人av在线播放| 少妇高潮久久77777| 国产一区二区丝袜高跟鞋图片| 久久精品国产亚洲一区二区| 国产精品久久久久久久美男| 欧美日韩在线第一页| 98午夜经典影视| 91精品国产免费久久久久久| 久久久精品美女| 日韩在线视频中文字幕| 日本午夜精品理论片a级appf发布| 日韩视频在线观看免费| 6080yy精品一区二区三区| 欧美一级bbbbb性bbbb喷潮片| 亚洲曰本av电影| 欧美野外wwwxxx| 国产精品午夜视频| 在线国产精品视频| 久久视频在线观看免费| 欧美一级片在线播放| 精品国产一区二区在线| 国产欧美日韩中文| 中文字幕少妇一区二区三区| 国产精品久久久久久久久久99| 高清一区二区三区日本久| 在线观看欧美视频| 国产这里只有精品| 中文字幕日韩电影| 午夜美女久久久久爽久久| 亚洲精品福利视频| 日韩中文字幕av| 久久高清视频免费| 亚洲天堂影视av| 欧美激情视频一区二区| 久久在线观看视频| 国产精品久久久久久久9999| 欧美日韩国产成人在线| 欧美丰满老妇厨房牲生活| 国产精品久久久久久久久男| 狠狠躁夜夜躁人人爽天天天天97| 国产在线一区二区三区| 亚洲一区二区三区四区视频| 欧美日韩综合视频网址| 狠狠久久五月精品中文字幕| 亚洲国产精品久久久久| 91国产一区在线| 久久精品成人一区二区三区| 91wwwcom在线观看| 欧美午夜www高清视频| 91精品久久久久久久久久另类| 亚洲网站在线看| 欧美亚洲午夜视频在线观看| 国产精品视频公开费视频| 中文字幕久久久av一区| 国产精品中文字幕久久久| 亚洲free性xxxx护士hd| 欧美日韩性视频|