我想写一个用户验证方法,如下
public bool ValidateUser(string userName,string password)
{
//内容
}
提问如下:
我不想通过数据库验证,而是想通过Windows用户验证(不是AD),即userName必须是我本机用户名,且password也要验证通过(与本机相同)。
请问使用C#在.Net Framework下如何实现?
先谢谢各位大侠。本人通过DirectoryEntry没有实现:(
特此求救

解决方案 »

  1.   

    如果不是管理员登陆你肯定得不到密码.如果是管理员登陆要密码还有啥用. System.Security.Principal.WindowsIdentity.GetCurrent().Name
    可以得到用户名
      

  2.   

    好奇怪的问题,没有遇见过.坚决使用数据库!
    还有你的程序让本机的人用的吗?还是写在web上面的阿?
      

  3.   

    好奇怪的问题,没有遇见过.
    还有你的程序让本机的人用的吗?还是写在web上面的阿?问题所在????
      

  4.   

    既然不用ad~~就不知道了~~~up~~
      

  5.   

    Environment.UserName可以得到用户名吧?
    密码就不知道了,估计不能很容易的让你得到
      

  6.   

    呵呵,其实我不是要得到用户名和密码(Microsoft也不会给),而是想得到一个接口,我调用这个接口,传递进去用户名和密码,它给我一个验证结果即可。
      

  7.   

    cmd加net 命令肯定能实现,我找找还有更好的办法没
      

  8.   

    DirectoryEntry de = new DirectoryEntry( "ldap://cn=username,cn=users,dc=yourdomain,dc=com" , username , userpwd , AuthenticationTypes.ServerBind );
    try{
     string rid = de.Guid.ToString();
     return true;
    }
    catch
    {
       return false;
    }
      

  9.   

    俺是冲着 up有分 来的……
    LZ要守信用咯!~
      

  10.   

    -----------------代码引用自:hdt(倦怠) 
    DirectoryEntry de = new DirectoryEntry( "ldap://cn=username,cn=users,dc=yourdomain,dc=com" , username , userpwd , AuthenticationTypes.ServerBind );
    try{
     string rid = de.Guid.ToString();
     return true;
    }
    catch
    {
       return false;
    }
    ------------------------------------------------
    引用 并且 MARK 
    -----------------------------------------是否好用阿?
      

  11.   

    既然能到ValidateUser这一步, 肯定是通过了Windows认证, 还验证个啥. 忽悠老板的吧.
      

  12.   

    hdt(倦怠) 提供的东西就是我想要的,问题已经解决了,一半分给他,剩下的留给大家:)
    再次感谢光临,哈哈!