请大家看看这个CGI(用CGI Expert做的)的奇怪现象(71分)

  • 主题发起人 主题发起人 DreamTiger
  • 开始时间 开始时间
我用
sUsername := FormVar('AUTHORIZED_USER','');
sUsername := FormVar('REMOTE_USER','');
sUsername := FormVar('REMOTE_IDENT','');
都没能得到值。莫非不能用CGIExpert读取?
 
当然得不到,这是系统变量! FormVar是取"表单"数据的!

用ServerVar('AUTHORIZED_USER')来取得该值!

如果不能得到,尝试用GeneralHttpEngine1.ServerVariables
来得到所有Server端的环境变量,然后看哪个比较可疑.
反正就是拼写类似于'AUTHORIZED_USER'的那个!

BTW:密码是得不到的.
 
如果AUTHORIZED_USER不好使,用LOGON_USER试一试.
 
多谢两位的指点。
我用GeneralHttpEngine1.ServerVariables把所有变量都
看了一下,记录到文件。
当我用一个正确的用户名时,正确的口令与错误的口令得
到的文件是一样的,也就是说它不检查口令是否正确。
正确的用户名与错误的用户名,也只有REMOTE_USER的差别,
其他没有任何差别。
这就是说,我无法从它是否返回REMOTE_USER来判断是否登
陆成功。
 
原则上,"错误的口令"你将什么也得不到呀! 因为用户根本没登陆进来.

如果登陆成功,有LOGON_USER(LOGIN_USER)这个server变量吗?
 
是这两个:AUTH_USER和AUTH_PASSWORD

注意1: 一定是通过NT账户管理授权的才能得到该变量;

注意2: 强烈不推荐使用这种方法.
 
我用PWS 中的禁止匿名访问后,检查了它的ServerViriables,
发现首先是AUTH_TYPE赋了值,是'NTLM',然后REMOTE_USER
赋了值,为'BIOINFO6/sqh'。这样,通过

sAuthType:=ServerVar('AUTH_TYPE');
if(sAuthType = 'NTLM') then
begin
sUserName := ServerVar('REMOTE_USER');
...
就可以得到验证过后的用户名。

由于PWS没法对单个目录加以限制,就没法继续往下试验了。

这个东西我只是自己做着用的,如果想要做像大富翁这类东西,
正如大侠所说,肯定不能通过NT来验证了。

多谢两位的帮忙,我会另开一个问题加分的。
 
在PWS上验证????? 我晕! &%&%*(&*()
 
不是我不想装IIS,可是机子上装了NT Workstation,没法装
IIS。重装的话,工作量太大了,只好作罢。
 

Similar threads

I
回复
0
查看
612
import
I
I
回复
0
查看
714
import
I
I
回复
0
查看
682
import
I
后退
顶部