asp代码封装成DLL组件的问题
以下ASP代码用来在服务器上创建一个WEB站点
<%
Dim WPort,bindlists,createflag,oComputer
oComputer="LocalHost"
binglists=Array(0)
binglists(0)="168.8.8.155:80:www.web.net"
WPort=binglists
createflag=CreateWebServer("D:\web","www.web.net",WPort,False)
If creatflag=0 Then
Response.Write "创建站点失败!请确定是否有权限"
Else
If createflag=1 Then
Response.Write "创建站点成功!"
Else
If createflag=2 Then
Response.Write "创建站点成功,但启动站点失败,可能端口冲突!"
End If
end if
end if
Function CreateWebServer(WRoot,WComment,WPort,ServerRun)
On Error Resume Next
Dim ServiceObj,ServerObj,VDirObj
Set ServiceObj=GetObject("IIS://"&oComputer&"/W3SVC")
WNumber=1
Do While IsObject(ServiceObj.GetObject("IIsWebServer",WNumber))
If Err.number<>0 Then
Err.Clear()
Exit Do
End If
WNumber=WNumber+1
Loop
Set ServerObj=ServiceObj.Create("IIsWebServer", WNumber)
If (Err.Number<>0) Then
Response.Write "错误: 创建Web服务器的ADSI操作失败!"
CreateWebServer=0
Exit Function
End If
ServerObj.ServerSize=1
ServerObj.ServerComment=WComment
ServerObj.ServerBindings=WPort
ServerObj.EnableDefaultDoc=True
ServerObj.SetInfo
Set VDirObj=ServerObj.Create("IIsWebVirtualDir", "ROOT")
If (Err.Number<>0) Then
Response.Write "错误: 创建虚拟目录的ADSI操作失败!"
CreateWebServer=0
Exit Function
End If
VDirObj.Path=WRoot
VDirObj.LinkSort=2
VDirObj.AccessRead=True
VDirObj.AccessWrite=True
VDirObj.EnableDirBrowsing=False
VDirObj.EnableDefaultDoc=True
VDirObj.AccessScript=True
VDirObj.AppCreate2 2
VDirObj.AppFriendlyName="我的应用程序"
VDirObj.SetInfo
If ServerRun=True Then
ServerObj.Start
If (Err.Number<>0) Then
Response.Write "错误: 起动服务器时出错!请手动启动WebServer "&WComment&"!"
CreateWebServer=2
Exit Function
End If
End If
Set VDirObj=Nothing
Set ServerObj=Nothing
Set ServiceObj=Nothing
CreateWebServer=1
End Function
%>
这是利用ADSI在服务器上创建WEB站点,此代码必须以管理员身份登录才能执行操作,经试验,创建站点成功.现在想把其中的CreateWebServer函数封装成DLL,然后在ASP中调用,目的是让任何人都可以通过ASP页面执行代码创建WEB站点,而不需要管理员身份.在VB中将dLL编译好后,在"组件服务"里注册了此组件,并赋予其管理员级别的权限,然后在ASP代码中引用了此组件,却返回“错误: 创建Web服务器的ADSI操作失败! ”的错误,似乎并没有取得管理员权限来执行ADSI操作。
请问,如何让普通的用户通过DLL组件以管理员身份进行操作?