CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

VB中怎么集成NT域验证?

楼主geolano(3PJS)2001-01-16 09:27:00 在 VB / 基础类 提问

前提,这是个局域网应用。  
   
  效果:  
  我想实现应用弹出登录对话框,要求用户输入域用户帐号及密码,  
  然后应用向主域服务器提交验证请求。  
   
  请问有没有现成的组件或者其他方法?  
  如果需要自己写,能否详细讲解思路?  
   
  在ASP那边问了好久都没有解决,希望VB这村里能帮上我,我的等  
  级最高只能给出35分,我都拿出来,请大家一定帮我! 问题点数:35、回复次数:7Top

1 楼RickeyLv(RickeyLv)回复于 2001-01-16 10:01:00 得分 0

使用api函数  
  Public   Declare   Function   LogonUser   Lib   "kernel32"   Alias   "LogonUserA"   (ByVal   lpszUsername   As   String,   ByVal   lpszDomain   As   String,   ByVal   lpszPassword   As   String,   ByVal   dwLogonType   As   Long,   ByVal   dwLogonProvider   As   Long,   phToken   As   Long)   As   Long  
  你可以把它封装到一个应用组件中Top

2 楼czh918(czh)回复于 2001-01-16 10:11:00 得分 0

很简单:  
  只要将你的asp或html放在nt的一个ntfs目录上,给该目录指定相应的权限就可  
  这样,当别人用ie访问时就会先弹出一个验证框,只有通过验证才能继续。  
  如果可能,多给点分,我正缺Top

3 楼cocoboy79(ithink79.spaces.live.com)回复于 2001-01-16 10:13:00 得分 0

用ADSI   见www.microsoft.com/adsiTop

4 楼geolano(3PJS)回复于 2001-01-16 18:30:00 得分 0

真的要谢谢RickeyLv,我明天可以回公司测试你说的API,  
  成功的话这35分全是你的。Top

5 楼geolano(3PJS)回复于 2001-01-16 19:24:00 得分 0

to   cocoboy79  
   
  刚刚又看了ADSI2.5的help,其实以前我一直尝试的方法就是  
  在ASP中用ADSI验证NT用户,无非是象下面这样的东西。  
  IADsUser         pUser;  
  BSTR                 bstrName;  
  HRESULT           hr;  
  hr   =   ADsGetObject(L"WinNT://MyDomain/Users/John",  
                                      IID_IADsUser,  
                                      (void**)   &pUser);  
   
  当然,ADSI可以做很多事,包括管理NT用户,但是我至今  
  没发现ADSI中提供验证用户的方法。我的意思是ADSI中提  
  供一个方法,参数是用户名和密码以及验证域,然后它返  
  回哪怕是个布而值,来告诉我验证是否通过也行。  
   
  但是,我没有找到   :(  
   
  你知道吗?  
   
  说实话,从实现角度来讲,我更倾向使用ADSI,但我真的知之甚少。  
  肯请帮助!Top

6 楼cocoboy79(ithink79.spaces.live.com)回复于 2001-01-17 23:08:00 得分 35

www.microsoft.com/adsi 有一个ADSI的白皮书下载,其中有一个LOGIN的例子。  
  我改了改如下:如果LOGIN失败了,当然就可以证明密码和用户名不对。但我还是不知道如何分别判断是密码错了,还是用户名不对,反正登陆不了,肯定有一个不对。  
  另外用ADSI做完后,在客户方安装注错时,ACTIVEDS.TLB不能注册,MS说好像是和MDAC有冲突  
  见http://support.microsoft.com/support/kb/articles/Q275/9/17.ASP?LN=EN-US&SD=g  
  不知有没有人解决这个问题!!!!!! microsoft.public.active.directory.interfaces  
  上有人问过,但也没见有好办法。。。。真麻烦:(  
   
  Private   Sub   Login_Click()  
  Dim   dso   As   IADsOpenDSObject  
  Dim   domain   As   IADsDomain  
  On   Error   GoTo   failed  
  Set   dso   =   GetObject("WinNT:")  
  Set   domain   =   dso.OpenDSObject("WinNT://MyDomain",   "Administrator",   "",   ADS_SECURE_AUTHENTICATION)  
  MsgBox   ("login   successful")  
  Exit   Sub  
  failed:  
  MsgBox   ("failed")  
  End   Sub  
  Top

7 楼cocoboy79(ithink79.spaces.live.com)回复于 2001-01-17 23:16:00 得分 0

另外这里有一个用WINNT API登陆的例子,可以下载程序。  
  其实验证用户录入的用户名和密码,可以用那个用户名和密码去登陆到服务器,登陆不上就不对了。  
  http://www.vbsquare.com/articles/ntvb/Top

相关问题

  • ASP如何集成NT域验证?
  • 域用户验证
  • nt验证与论坛自己的验证。
  • 求域用户登陆验证
  • VB+ACCESS如何实现用户身份验证啊?
  • 如何用vb来实现信箱的密码验证?
  • vb中如何调用使用了windows身份验证的webservice?
  • vb中如何调用使用了windows身份验证的webservice?
  • 用VB编写的密码验证程序的问题
  • 有谁能提供好的验证日期的vb的方法?

关键词

  • 验证
  • 用户
  • 密码
  • asp
  • nt
  • microsoft
  • adsi
  • dso
  • 登陆
  • winnt

得分解答快速导航

  • 帖主:geolano
  • cocoboy79

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo