Jason

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

以前收藏了徐虎专栏里的一篇AD操作的类,后来的AD操作省了不少的时间。但今天发现类中的一个小错误。就是新建用户后,启用帐户时代码不正确。
原代码:
  /// 
  /// 启用指定 的用户
  /// 
  /// 
  public static void EnableUser(DirectoryEntry de)
  {
   impersonate.BeginImpersonate();
   de.Properties["userAccountControl"][0] =  ADClass.ADS_USER_FLAG_ENUM.ADS_UF_NORMAL_ACCOUNT | ADClass.ADS_USER_FLAG_ENUM.ADS_UF_DONT_EXPIRE_PASSWD;
   de.CommitChanges();
   impersonate.StopImpersonate();
   de.Close();
  }
上面的ADClass.ADS_USER_FLAG_ENUM.ADS_UF_NORMAL_ACCOUNT = 0X0200;    //普通用户的默认帐号类型
            ADClass.ADS_USER_FLAG_ENUM.ADS_UF_DONT_EXPIRE_PASSWD = 0X10000;   //密码永不过期标志

上述代码运行时竟让报“该服务器不愿意处理该请求”?狂晕!!!第一次遇见这种异常消息!!

后来在微软网站找到了原因所在:Enabling and Disabling the User Account 
启用帐号:

DirectoryEntry usr = 
    new DirectoryEntry("LDAP://CN=New User,CN=users,DC=fabrikam,DC=com");
int val = (int) usr.Properties["userAccountControl"].Value;
usr.Properties["userAccountControl"].Value = val & ~ADS_UF_ACCOUNTDISABLE;
usr.CommitChanges();


上班时间就不多废话了,userAccountControl的其他属性操作请查阅ADS_USER_FLAG_ENUM




posted on 2006-01-16 15:52  Jsang  阅读(1646)  评论(4编辑  收藏  举报