每个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,这些用户都将被拒绝访问。
本文由沙滩小子整理制作,您可以转载,但请注明其出处,谢谢!
