科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道通过.NET Framework访问活动目录

通过.NET Framework访问活动目录

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文首先回顾了活动目录(AD)的有关概念,然后简要地讨论了实际的 System.DirectoryServices名字空间本身,最后给出了可供我们在实际应用程序中使用的代码。

来源:IT试验室 2008年4月8日

关键字: Windows 操作系统 微软 活动目录

  • 评论
  • 分享微博
  • 分享邮件
    我们的用户对象有二个缺省的构造器。第一个用来用一个给定的DirectoryEntry对象对我们的用户进行初始化,它将使用Invoke方法从对象中“获取”用户的属性。
  
  第二个构造器用来创建一个新的用户。我们只需要向它传递三个参数,在用来创建新用户时,它就会创建一个新的DSUser对象。需要注意的是,由于没有完成任何的AD操作,因此我们并没有在AD中创建真正的用户。
   
  数据访问层(DAL)
  
  下一步就是创建AD的DAL封装了,下面的一些代码是分步骤完成的完整的UserAdmin DAL代码。
  
  我们首先创建并初始化在UserAdmin类中所需要的代码:
  
  #缺省属性的初始化
  //我们的错误日志设备,应当尽量保持简单,避免代码膨胀过大
  System.Text.StringBuilder errorLog = new System.Text.StringBuilder();
  private System.Boolean error=false;
  public System.Boolean Error{get{return error;}}
  public string ErrorLog{get{return errorLog.ToString();}}
  //设置缺省的属性
  private string loginPath="WinNT://"+Environment.MachineName+",computer";
  private string domainName=null;
  private string loginUsername=null;
  private string loginPassword=null;
  private System.DirectoryServices.AuthenticationTypes authenticationType =
  System.DirectoryServices.AuthenticationTypes.None;
  private System.DirectoryServices.DirectoryEntry AD=null;
  private System.Boolean connected=false;
  #endregion
     
  注意我们是如何将LoginPath硬拷贝为WinNT提供商的。为了使DAL能够与任何其他AD服务提供商配合,这一点必须进行改变。另外需要注意的是,我使用了System.Text.StringBuilder对象来保存错误日志,从而简化了错误处理过程。在有错误发生的情况下,系统会简单地添加一条日志,Boolean型变量error将会被设置为“真”值。下面的代码是我们设计的类的构造器:(图1.4)
  
  #region .ctor's
  public UserAdmin() {
   Connect();
  }
  /// <摘要>
  /// 在需要的时候,使我们能够创建UserAdmin类
  ///
  ///
  ///
  ///
  ///
  public UserAdmin(string LoginUsername, string LoginPassword,
   System.DirectoryServices.AuthenticationTypes AuthenticationType,
  string DomainName) {
   loginUsername=LoginUsername;
   loginPassword=LoginPassword;
   authenticationType=AuthenticationType;
   if(DomainName=="" || DomainName==null)
  DomainName=System.Environment.UserDomainName;
   domainName=DomainName;
   Connect();
  }
  /// <摘要>
  /// 获得UserAdmin类的另一种方式,可以指定另外一个LoginPath,例如LDAP或IIS。
  ///
  ///
  ///
  ///
  ///
  ///
  public UserAdmin(string LoginPath, string LoginUsername, string LoginPassword,
   System.DirectoryServices.AuthenticationTypes AuthenticationType,
  string DomainName) {
   loginPath=LoginPath;
   loginUsername=LoginUsername;
   loginPass
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章