使用ADSI、ASP和一对魔术戏法自动地创立一个虚拟目录的方法
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
从我们的表单来的,并且没有欺骗我们的服务器。我们将检索HTTPReferer服务器变量和服务器名来测试它。这儿你可以做许多检查;在我们的测试中不必十分坚固。关于安全站点的优秀文章,请查看由DmitryKhanine整理的EasyApplicationStateSecurely(http://www.15seconds.com/Issue/990114.htm)。在代码的结尾插入以下代码: strHTTPReferer=Request.ServerVariables("HTTP_REFERER") strServerName=Request.ServerVariables("SERVER_NAME") ''我们是从我们的表格来的吗?如果不是,则拒绝存取 IfstrHTTPReferer<>"http://"&strServerName&"/Servin/Default.asp"then Response.Write("AccessDenied") Response.End EndIf 现在我们的网页已证实我们的用户是从我们的表单传递结果的,我们可以获取虚拟目录(VirtualDirectory)、所有者(Owner)和脚本权限(ScriptPermissions)标记的值。请注意我们是怎样根据从checkboxScript获取的值来改变的,如果它被选定,就设为True,如果没有被选定就设为False。在你的最后一位代码后插入以下代码: strVirtualDirectoryName=Request.Form("textVirtualDirectory") strOwner=Request.Form("selectOwner") IfRequest.Form("checkboxScript")="on"Then bolScriptPermissions="True" Else bolScriptPermissions="False" EndIf 我们需要确认IIS应用程序是否存在。使用IISAdmin对象,我们检查是否应用程序早已存在并且把相应的警告传递给用户。 ''DoesthisIISapplicationalreadyexistinthemetabase? OnErrorResumeNext SetobjIIS=GetObject("IIS://localhost/W3SVC/1/Root/"&strVirtualDirectoryName) IfErr.Number=0Then Response.Write("Anapplicationwiththisnamealreadyexists.Click") Response.Write("<AHREF=http://"&strServerName&"/servin/default.asp>") Response.Write("here</A>tochooseadifferentname.") Response.End EndIf SetobjIIS=Nothing 现在我们将使用IIS管理对象在meta数据库中创建IIS应用程序。 ''创建IIS应用程序 SetobjIIS=GetObject("IIS://localhost/W3SVC/1/Root") strVirtualDirectoryPath=objIIS.Path&"\"&strVirtualDirectoryName 使用VBScript的FileSystemObject对象,我们将测试文件夹是否存在于这个文件系统;如果不存在,我们将使用CreateFolder命令创建它。 SetobjFileSystem=Server.CreateObject("Scripting.FileSystemObject") ''Testtoseeifthefolderexistsinthefilesystem.Ifnot,createit OnErrorResumeNext SetFolder=objFileSystem.GetFolder(strVirtualDirectoryPath) IfHex(Err.number)="4C"Then objFileSystem.CreateFolderstrVirtualDirectoryPath EndIf SetobjFileSystem=Nothing 使用Administration对象(在这篇文章中我们多次使用),我们开启脚本权限(加入用户选择了这这选项)并定义虚拟目录作为一个进程中的应用。 ''在文件系统上创建文件夹 SetobjVirtualDirectory=objIIS.Create("IISWebVirtualDir",strVirtualDirectoryName) objVirtualDirectory.AccessScript=bolScriptPermissions objVirtualDirectory.Path=strVirtualDirectoryPath objVirtualDirectory.SetInfo objVirtualDirectory.AppCreatebolInProcessApplication 现在看一下这个魔术:设置权限。我们确实认为这是很简单的部分。不幸地是,在ADSI中不存在能为虚拟目录设置权限的对象。惊慌失措,并且还有一点不舒服的感觉。(或者是由于昨天晚上大吃泰国饭菜引起的?) 搜索15seconds.com的ADSI列表服务器,发现一篇引用DOSCACLS.EXE文件的通讯(http://listserv.15seconds.com/scripts/wa15seconds.exe?A2=ind9806C&L=ADSI&P=R1861)并且通过DOSCMD文件使用它。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于使用ADSI、ASP和一对魔术戏法自动地创立一个虚拟目录的方法的所有评论