饮酒买醉

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  11 随笔 :: 18 文章 :: 9 评论 :: 1 引用

以前收藏了徐虎专栏里的一篇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 饮酒买醉 阅读(426) 评论(4)  编辑 收藏

评论

你好,我也遇到了这个一样的问题,但是,按你所贴的作了后,仍然不成功。
提示:
Error 1 Operator '&' cannot be applied to operands of type 'int' and 'ADS_UF_ACCOUNTDISABLE'

请教你是怎么解决的?谢谢
  回复  引用    

usr.Properties["userAccountControl"].Value = val & ~(int)ADS_UF_ACCOUNTDISABLE;
  回复  引用    

#3楼 [楼主] 2006-06-21 09:14 饮酒买醉      
不好意思,上次博客园突然打不开,所以这么久才回复。
具体参考:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adsi/adsi/ads_user_flag_enum.asp
  回复  引用  查看    

#4楼  2007-03-06 13:40 x [未注册用户]
新建用户帐户
  回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: