现在项目中遇到客户需要建立一个域后,只要登录到域里的用户,可以直接进入系统无需填写登录账号密码的! 
每次登录到域里的登录名是可以拿到的! 
现在我要的是怎么样才能知道匹配的是登录到域了以及域下所有的登录账号如何取得??? 
环境是域和WEB服务网站都是自己可以设置的! 
用户有两种:1.登录到域里的用户 2.不在域里的用户。大家都访问一个自己做的WEB网站。 
望高手解决,能给详细代码! 

解决方案 »

  1.   

    建议的页面的load里面就得到当前登入电脑的帐号,然后再通过帐号访问AD,如果帐号存在的话就自动跳转
      

  2.   

    如果是asp.net应用程序,使用Windows身份验证不知道能不能解决问题?还有将IIS和Web程序结合起来也许可以做到。
    如果是Winform,则只有通过提取用户相关信息来实现了。
      

  3.   

    使用Windows身份验证不知道能不能解决问题?还有将IIS和Web程序结合起来也许可以做到。
      

  4.   

    参考:
    http://topic.csdn.net/u/20080702/21/fc3826ba-2296-41f6-8049-3d0fbe5710b8.html
      

  5.   

    感觉这种做法很不符合常识,不管C/S还是B/S模式因为普通操作用户应该不会都登陆到服务器再来使用你的系统,
    如果你只是要做到不同类别的人有不同权限,为什么不在系统里做个简单的权限管理模块,将用户分组就行了
      

  6.   

    你去看看http://topic.csdn.net/u/20080702/21/fc3826ba-2296-41f6-8049-3d0fbe5710b8.html14楼说明吧!
      

  7.   

    域认证是很有必要的,安全度不用说了!在一个已经登录到域里了,就算认证了!在进服务的话就无需验证登录了,直接进入系统,这是人家领导要要的功能,客户需求,没办法!
    -------------------
    呵呵,觉得很好笑,缺乏常识,要是我是这个系统的设计者我就能说服客户按照我的要求进行设计,因为我们是专业的,反过来你都让些业余的人牵着走了,那做事就太被动了.
    我还没见过B/S系统要登陆服务器再使用这个系统的,最多在你的系统里用cookies之类记住他最后登陆的用户名和密码就行了,那他再次登陆时就无需再次输入用户密码之类了
      

  8.   

    我现在想实现用C#语言拿到域名和域IP地址,当然是在进入域环境后拿到,我用JS语言已经拿到,不过总要把Active启用或添加信任站才可以!而且我已经实现拿到域名下的所有用户的登录名了! 
    望高手指点! 
    JS语句拿域名: 
    var  WshNetwork  =  new  ActiveXObject("WScript.Network");  
      alert("Domain  =  "  +  WshNetwork.UserDomain);//此为拿域名 
      alert("Computer  Name  =  "  +  WshNetwork.ComputerName);  //机器名 
      alert("User  Name  =  "  +  WshNetwork.UserName);  
      

  9.   

    找到这贴了,呵呵,
    今天看了下公司里登陆域的代码
    #region  IsAuthenticated 判断是否域用户
            /// <summary>
            /// 判断是否域用户
            /// </summary>
            /// <param name="username">用户名</param>
            /// <param name="pwd">密码</param>
            /// <param name="domain">域名</param>
            /// <returns></returns>
    public bool IsAuthenticated(string username, string pwd, string domain)
    {
    string ADPath = "LDAP://" + domain;
    DirectoryEntry entry = new DirectoryEntry(ADPath,
    username, pwd); try
    {
    Object obj = entry.NativeObject;
    DirectorySearcher search = new DirectorySearcher(entry);
    search.Filter = "(SAMAccountName=" + username + ")";
    search.PropertiesToLoad.Add("cn");
    SearchResult result = search.FindOne();
    if (null == result)
    { return false;
    }
    //string str = result.GetDirectoryEntry().Properties["displayName"].Value.ToString(); return true;
    }
    catch (Exception ex)
    {
    //AppException oAppException = new AppException("AD Services Login", ex);
    return false;

    }
          #endregionif( IsAuthenticated(this.username.Value, this.userpassword.Value,"xxx.net")==true)  就可以进行检验了
    微软在这:
    http://msdn.microsoft.com/zh-cn/library/ms180890.aspx
      

  10.   

    谢谢xocom!我现在已经基本完全解决了所有问题!在网上找了好多资料,你这方面的我已经用了!
      

  11.   

    解决后写的文章:
    http://blog.csdn.net/lfywy/archive/2008/07/16/2658623.aspx