使用许可检查组件

许可检查组件用来显示那些用户可以被授权访问的页面连接,这个组件只有一个属性,叫做HasAcess,当用户进入某个页面,该属性返回值True,如果用户无法进入或者不存在,该属性返回值为False。下面是使用这个组件的一个示例:

 

<%

Set Permit=Server.CreateObject(MSWC.PermissionChecker)

%>

<HTML>

<HEAD><TITLE>迈至科网络ASP教程之许可检查组件示例</TITLE></HEAD>

<BODY>

<%

If Permit.HasAcess(Destory.asp)

THEN

%>

<A href=Destory.asp>

点击这里删除硬盘所有文件

</a>

<%

Else

%>

你无法进行这种操作

<% End IF %>

</BODY>

</HTML>

 

注意

该组件不是微软的公务软件,不过,最新的IIS版本已经包括了,那么你还可以从www.microsoft.com/iis中进行下载。

 

这个例子中,这个连接只能允许有权限的人进行操作,没有权限的则看不到这个连接。

什么时候涉及到用户的授权访问,这取决于WindowsNT的安全性,当WindowsNT设置为NTFS文件系统,那么每一个文件都有一组许可属性,你可以将文件读写权限与一个特定组的用户相联系。

 

注意

记住浏览器允许你以密码框方式进入需要基本认证的页面。

 

具体操作是右键文件名,选择Properity,然后点Security表,选择Permission钮,这时就可以将该文件与特定的用户或者用户组联系起来,设置相应读写权限(图20.2)。

有两种方法强制用户在你的网站中进行注册登录,第一种是利用Internet Service Manager来设置安全认证模式,当密码安全认证此创建后,你就可以强制匿名用户进行登录,默认情况下,所有匿名用户使用同样的帐号,即IUSER_你的电脑名,假如你的电脑叫做magic,那么所有匿名用户的帐号都是IUSER_magic。

 

你还可以在特定页面强制用户进行登录,这样你可以限定IUSER_magic这样的匿名用户的使用范围,并甄别出其中存在的管理人员。当用户进入某个页面,则弹出密码对话框,强制访问者登录然后利用许可检查组件进行身份甄别。

图20.2 用Windows NT 设置文件权限

 

下面是利用脚本实现的一个示例:

 

<%

LOGON=Request.ServerVariables(LOGON_USER)

IF LOGON =”” OR ISNULL(LOGON) OR ISEMPTY(LOGON) THEN

Response.Status= 401 Unauthorized

Response.End

END IF

Set Permit=Server.CreateObject(MSWC.PermissionChecker)

%>

<HTML>

<HEAD><TITLE>迈至科网络ASP教程之许可检查组件示例</TITLE></HEAD>

<BODY>

<%

If Permit.HasAcess(Destory.asp)

THEN

%>

<A href=Destory.asp>

点击这里删除硬盘所有文件

</a>

<%

Else

%>

你无法进行这种操作

<% End IF %>

</BODY>

</HTML>

 

这个例子只有最前面的几行和前面例子不同,Request.Status在前面的第14章有关小节中有所介绍。这个ASP执行时会首先弹出密码对话框,然后检验用户身份,在根据这个身份利用许可检查组件显示相应内容。

 

例如:你的网站可以设置多名管理人员,每个人的授权范围可能不近相同,那么对于进行相应操作的文件自然可以设置为相应用户读写执行权限,这样根据许可检查组件就可以正确的‘对号入座’,防止越权行为的发生。

 

总结

这章主要介绍了两种ActiveX组件,一种是内容连接组件,其中的示例是一个简单的讨论组,另外一个是权限检查组件来决定授权用