c# Ldap 创建本地用户,隶属组成员、dns的域

在上次的blog我们介绍了如何使用winnt 协议来建winodws用户,需要结合System.DirectoryServices,本次我们将使用lasp来做一些简单的操作、如本地用户和组、dns服务器、以下的代码在windows 2000 上通过。需要安装目录树服务器。 更对的信息请访问http://www.35cn.com/index_soft.htm
1、LDAP是什么
LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大。

2、LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。

  简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。

LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写,其实是一话号码簿,类似于我们所使用诸如NIS(Network Information Service)、DNS (Domain Name Service)等网络目录,也类似于你在花园中所看到的树木。
LDAP是一种特殊的数据库。但是LDAP和一般的数据库不同,明白这一点是很重要的。 LDAP对查询进行了优化,与写性能相比LDAP的读性能要优秀很多。

如何在.net使用

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.DirectoryServices;
namespace cendy
{
 /// <summary>
 /// adnew 的摘要说明。
 /// </summary>
 public class adnew : System.Web.UI.Page
 {
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   creat_dnszone();//调用创建dns的方法
   DirectoryEntry myde=new DirectoryEntry("LDAP://ycinfo.35cn.com/CN=Users,DC=35cn,DC=com");
   DirectoryEntry user=myde.Children.Add("CN=zixian","user");  //在用户对象创建zixian用户
   user.UsePropertyCache=true;
   user.Properties["company"].Add("cendychen");
   user.Properties["department"].Add("sales");
   user.Properties["samAccountName"].Add("sename");
   user.Properties["userPassWord"].Add("123");
//设置用户的属性
   user.CommitChanges();
//更新的ad目录树

   using(DirectoryEntry myde2=new DirectoryEntry()) //设置zixian隶属guests组
   {
    myde2.Path="LDAP://ycifo.35cn.com/CN=Guests,CN=Builtin,DC=35cn,DC=com";
    myde2.Username=@"35cn/Administrator";
    myde2.Password="123";
    int i=myde2.Properties["member"].Count+1;//获取guests成员的个数+1
    myde2.Properties["member"].Add("CN=zixian,CN=Users,DC=cnsun,DC=com");//增加zixian用户到member中
    myde2.CommitChanges();// 更新到ad目录树。

   }
  }
  private void creat_dnszone()//创建dns域的方法
  {
   DirectoryEntry dbsde=new DirectoryEntry("LDAP://ycinfo.35cn.com/CN=MicrosoftDNS,CN=System,DC=35cn,DC=com");
   dbsde.AuthenticationType = AuthenticationTypes.Secure;
   dbsde.Username = "Administrator";
   dbsde.Password = "123";
   DirectoryEntry newGroup=dbsde.Children.Add("DC=cendychen.com","dnsZone");//添加新的域
   newGroup.CommitChanges();//更新的dns树
   dbsde.Close();
  }


  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion
 }
}

阅读更多
换一批

没有更多推荐了,返回首页