关于WNetAddConnect2(200分)

  • 主题发起人 六窍通
  • 开始时间

六窍通

Unregistered / Unconfirmed
GUEST, unregistred user!
背景:
有一台不在狱中的NT,在上面有一个用户:TESTUSER/PASSWORD,
将部分目录共享出来,TESTUSER可以访问。
现在用95或NT访问这些共享,(95没有设置登陆到NT狱)。

我的代码:
function MapNetDrv(LocalDriver, ShareName, Password, UserName: String):DWord;
//建立网络驱动器 Example: MapNetDrv('h:', '//server/c', '', '');
var NRW: TNetResource;

begin
if (LocalDriver[Length(LocalDriver)]<>':') then LocalDriver:=LocalDriver+':'; // else result:=Src;

with NRW do
begin
dwType:= RESOURCETYPE_ANY;
lpLocalName:=PChar(LocalDriver);
lpRemoteName:=PChar(ShareName);
lpProvider:='';
end;
result := WNetAddConnection2(NRW, PChar(Password), PChar(UserName), CONNECT_UPDATE_PROFILE);
end;
procedure TForm1.Button1Click(Sender: TObject);
var ss:dword ;
begin
ss := MapNetDrv('h:', '//TESTSERVER/SOMESOURCE', 'TESTUSER', 'PASSWORD');
case ss of
ERROR_ACCESS_DENIED :ShowMessage('ERROR_ACCESS_DENIED ');
ERROR_ALREADY_ASSIGNED :ShowMessage('ERROR_ALREADY_ASSIGNED ');
ERROR_BAD_DEV_TYPE :ShowMessage('ERROR_BAD_DEV_TYPE ');
ERROR_BAD_DEVICE :ShowMessage('ERROR_BAD_DEVICE ');
ERROR_BAD_NET_NAME :ShowMessage('ERROR_BAD_NET_NAME ');
ERROR_BAD_PROFILE :ShowMessage('ERROR_BAD_PROFILE ');
ERROR_BAD_PROVIDER :ShowMessage('ERROR_BAD_PROVIDER ');
ERROR_BUSY :ShowMessage('ERROR_BUSY ');
ERROR_CANCELLED :ShowMessage('ERROR_CANCELLED ');
ERROR_CANNOT_OPEN_PROFILE :ShowMessage('ERROR_CANNOT_OPEN_PROFILE ');
ERROR_DEVICE_ALREADY_REMEMBERED :ShowMessage('ERROR_DEVICE_ALREADY_REMEMBERED');
ERROR_EXTENDED_ERROR :ShowMessage('ERROR_EXTENDED_ERROR ');
ERROR_INVALID_PASSWORD :ShowMessage('ERROR_INVALID_PASSWORD ');
ERROR_NO_NET_OR_BAD_PATH :ShowMessage('ERROR_NO_NET_OR_BAD_PATH ');
ERROR_NO_NETWORK :ShowMessage('ERROR_NO_NETWORK ');
else
ShowMessage(inttostr(ss));
end;
end;

问题:
以上代码在NT上是没有问题的。
在95上,如果用TESTUSER登陆是可以的,但用其他用户登陆
出错:ERROR_ACCESS_DENIED,

如何解决这个问题,前提,95不登陆到狱。
 
呵呵, 这是当然的了.
nt有角色扮演, 可以在不同的域使用不同的username/password, 而2000更是允许
同一域内用不同用户运行程序.
而9X是没有此功能的, 也就是说, 9x登录时使用的是那个用户, 连到域时就会使用哪个
用户的名, 不过可以密码不同, 但用户名是不能更改的. 角色是固定的.
 
那台不在狱中的NT中有其它用户的帐号吗?
 
可以有, 也可以没有.
 
原来如此。
 
顶部