|
|
程序在网页上无法运行,无权限,有谁知道?
<%
strMachineName = "localhost" 'domain name
strObjectPath = "W3SVC/1" 'object name
'construct object location in IIS
strPath = "IIS://" & strMachineName & "/" & strObjectPath
Set IISObject = GetObject (strPath) 'connect to IIS metabase '无法执行这一段
%>
Name = "<%= IISObject.Name %>"<br>
Parent= "<%= IISObject.Parent %>"<br>
SchemaLocation = "<%= IISObject.Schema %>"<br>
Class = "<%= IISObject.Class %>"<br>
Guid = "<%= IISObject.Guid %>"<br>
ADSPath = "<%= IISObject.AdsPath %>"<br>
执行上述程序时间,会出现如下提示:
Microsoft VBScript 运行时错误 错误 '800a0046'
没有权限: 'GetObject'
/test.asp,行7
网上介绍方法,可惜看不明白具体如何设置:
存取Metabase的ASP网页必须有在执行IIS 5.0之电脑上的管理权限,在程序外(out-of-process)执行ASP应用程式时也是这样。从远端电脑上执行指令档时,您必须透过某个安全连线来进行传输,例如使用整合的Windows身份验证(以前被称为NTLM身份验证)来保护的连线。建议您可以为管理性的 .asp档案建立伺服器或者目录,并且在此伺服器或者目录上设定身份验证方法,以便使用整合的Windows身份验证。
--------------------------------------------------------------------------------
因为安全上的理由,程序外的应用程式不能存取Metabase,除非 WamUserName 被识别出是管理人员。建议您保留这个预设的行为,除非在特殊环境下您有其他要求。
有两种方法可以修改程序外行为,但是每个方法都有一些安全风险:
您可以授与 IWAM _machinename帐户对Metabase有匿名存取权限或整合的Windows身份验证存取权限。这样做会让以这个预设识别码所建立的所有程序外应用程式能存取Metabase。
或者,您可以将特定的程序外软体套件的识别码改为其他的帐户,并且只授予该帐户对Metabase有管理员等级的存取权限。使用这个方法的风险会小一些,但是必须对每个程序外的软体套件都进行这种处理。
|
|