/// <summary> /// 禁用指定的用户。 /// </summary> /// <param name="commonName">用户名</param> public void DisableUser(string commonName) { System.DirectoryServices.DirectoryEntry obUser = this.AD.Children.Find(commonName, "User"); try { object UserFlags = obUser.Invoke("Get", "UserFlags"); ADS_USER_FLAG_ENUM aUserFlags = (ADS_USER_FLAG_ENUM)UserFlags; aUserFlags = aUserFlags | ADS_USER_FLAG_ENUM.ACCOUNTDISABLE; obUser.Invoke("Put", "UserFlags", aUserFlags); obUser.CommitChanges(); } finally { obUser.Close(); } }
/// <summary> /// 设置用户密码永不过期。 /// </summary> /// <param name="commonName">用户名</param> public void EnableDontExpirePassword(string commonName) { System.DirectoryServices.DirectoryEntry obUser = this.AD.Children.Find(commonName, "User"); try { object UserFlags = obUser.Invoke("Get", "UserFlags"); ADS_USER_FLAG_ENUM aUserFlags = (ADS_USER_FLAG_ENUM)UserFlags; aUserFlags = aUserFlags | ADS_USER_FLAG_ENUM.DONT_EXPIRE_PASSWD; obUser.Invoke("Put", "UserFlags", aUserFlags); obUser.CommitChanges(); } finally { obUser.Close(); } }
/// <summary> /// 取消设置用户不能更改密码。 /// </summary> /// <param name="commonName">用户名</param> public void DisableChangePassword(string commonName) { System.DirectoryServices.DirectoryEntry obUser = this.AD.Children.Find(commonName, "User"); try { object UserFlags = obUser.Invoke("Get", "UserFlags"); ADS_USER_FLAG_ENUM aUserFlags = (ADS_USER_FLAG_ENUM)UserFlags; aUserFlags = aUserFlags & (~ADS_USER_FLAG_ENUM.PASSWD_CANT_CHANGE); obUser.Invoke("Put", "UserFlags", aUserFlags); obUser.CommitChanges(); } finally { obUser.Close(); } }
/// <summary> /// 获取用户信息。 /// </summary> /// <param name="commonName">用户名</param> /// <returns>用户信息。</returns> public UserInfo GetUser(string commonName) { System.DirectoryServices.DirectoryEntry obUser = this.AD.Children.Find(commonName, "user"); try { string FullName = (string)obUser.Invoke("Get", "FullName"); string Description = (string)obUser.Invoke("Get", "Description"); string HomeDirectory = (string)obUser.Invoke("Get", "HomeDirectory"); bool PasswordExpired = (int)obUser.Invoke("Get", "PasswordExpired") == 1? true: false; ADS_USER_FLAG_ENUM UserFlags = (ADS_USER_FLAG_ENUM)obUser.Invoke("Get", "UserFlags"); bool DontExpirePassword = ((UserFlags & ADS_USER_FLAG_ENUM.DONT_EXPIRE_PASSWD) == ADS_USER_FLAG_ENUM.DONT_EXPIRE_PASSWD); bool ChangePassword = ((UserFlags & ADS_USER_FLAG_ENUM.PASSWD_CANT_CHANGE) == ADS_USER_FLAG_ENUM.PASSWD_CANT_CHANGE); bool EnableUser = ((UserFlags & ADS_USER_FLAG_ENUM.ACCOUNTDISABLE) == ADS_USER_FLAG_ENUM.ACCOUNTDISABLE); return(new UserInfo(commonName, FullName, Description, HomeDirectory, PasswordExpired, DontExpirePassword, ChangePassword, EnableUser)); } finally { obUser.Close(); } }