访问|控制
每个FrontPage Web(包括每个子Web)都包含构成FrontPage Server Extensions的三个ISAPI DLL复制,这些DLL是在FrontPage Web顶层目录下的目录中生成的。
▲_vti_bin/_vti_adm/admin.dll是为了完成管理Web的任务
▲_vti_bin/_vti_aut/author.dll是为了编写FrontPage Web
▲_vti_bin/shtml.dll执行浏览时期的行为
FrontPage通过把HTTP POST的要求发送到这些DLL来进行所有的编写及管理工作,FrontPage服务器扩展存储在用户文件根目录下的独立目录之中。
HTTP是无状态的协议,IIS对每个HTTP请求的处理是相互独立的,例如,当HTTP请求从FrontPage Explorer访问网站的Admin.dll时,IIS试图以匿名用户IUSER_hostname方式来执行请求,IIS能不能执行Admin.dll处理请求,这有很多的原因:
(1),IIS可能不允许启用匿名浏览
(2),包含Admin.dll的目录没有被IIS设为不可执行
(3),Windows NT中可能不存在IUSR_hostname用户(在安装时由IIS创建),或者安装IIS后这个用户被禁止
(4),Admin.dll的ACL可能没有给IUSR_hostname执行文件的许可权
如果匿名用户不能执行Admin.dll,Web服务器会返回错误401(禁止访问),然后,FrontPage Explorer提示浏览者提供用户名和口令,并使用Windows NT鉴别用户,用户可能看不到这个提示,就像浏览者只是提供了登录用户的安全性ID一样,用户被鉴别后,IIS将再次试图使用用户提供的账号执行操作,如果被鉴别的用户具有执行Admin.dll的许可权,那么此用户就可以成为FrontPage管理员,并进行适当的操作。
在实际应用中,因为FrontPage Explorer能够缓存最初提示时的用户名和口令,因此不会在每次HTTP请求时都要求用户提供用户名和口令,但是,如果缓存的用户名和口令执行操作许可权不够,会提示用户输入新的用户名和口令。
即使FrontPage和IIS的设置都是正确的,用户也可能被禁止访问FrontPage站点,这取决于用户账号的状态,如果Windows NT用户不再存在,或者已经被禁止,或者所处的状态不能执行这些ISAPI DLL,这些用户都将被拒绝访问。
本文由沙滩小子整理制作,您可以转载,但请注明其出处,谢谢!