使用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
你可以把它封装到一个应用组件中

解决方案 »

  1.   

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

  2.   

    用ADSI 见www.microsoft.com/adsi
      

  3.   

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

  4.   

    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,但我真的知之甚少。
    肯请帮助!
      

  5.   

    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
      

  6.   

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