应该是windows domain自身支持的方法可以看看这个文章Integrated Windows Authentication (IIS 6.0)
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/523ae943-5e6a-4200-9103-9808baa00157.mspx?mfr=true

解决方案 »

  1.   

    C#中可以访问AD,可以使用LDAP参考:
    Active Directory Users Tasks
    http://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C#35文章中还描述了AD的其它应用。
      

  2.   


    private bool Authenticate(string userName,
        string password, string domain)
    {
        bool authentic = false;
        try
        {
            DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain,
                userName, password);
            object nativeObject = entry.NativeObject;
            authentic = true;
        }
        catch (DirectoryServicesCOMException) { }
        return authentic;
    }这个不是认证的方法吗?虽然不一定是IIS使用的,但是它是开放给开发者调用的。
      

  3.   

    兄弟,这个是明文的,我要的是密文的,因为iis 传密码过来,传的是密文的,这个明文的方法不能用,LoginUser这个方法也是可以用明文的。需要的是密文的,根据(用户名、密码密文)来验证用户。我怀疑是密文的是不是没有啊???
      

  4.   


    IIS 直接用Integrated authention 直接帮你做认证了,你不需要自己认证了呀。
      

  5.   

    你说的这种用密码(派生密钥)加密质询码的方式是NTLM验证方式,这种方式下服务器并不与域验证服务器打交道,服务器也不需要在域中。在服务器上保存有用户的用户名、密码,服务器用这个用户的密码,按照和客户端相同的方式,派生密钥,加密质询码,然后和客户端送上来的比较一下,如果相同就说明密码是对的。
    参考:http://www.cnblogs.com/chnking/archive/2007/11/20/965553.html#_Toc183326157 中的1、 NTLM验证过程
      

  6.   

    我就是不要IIS的Integrated authention 。我要的是自己接管iis 的验证过程。现在就是遇到了问题,我不想记录用户的密码明文,现在发现,如果不记录用户的密码明文,这个接管就接管不了。如果有根据(用户名、密码密文)来验证用户,那我的方案就能通过,没果没有这个api,那我的方案就通不过。
    所以我就想知道,有没有   根据(用户名、密码密文)来验证用户是否是合法用户的api。jshi123 ,你的说法不对,服务器端,是调用域认证服务器来进行验证的,它有一个根据(用户名,密码密文)验证的方法。
    只是这个方法对我们不公开。
     
      

  7.   

    有吗?你在哪里看到的这方面资料。据我所知没有你说的这种api。
    如果你想“仿冒”iis对客户端进行NTLM验证,就按照上面链接中的“1、 NTLM验证过程”中的步骤,给出和iis一样的应答报文就可以了,当然前提是你得知道客户的密码。