c#LDAP代码实现启用账户或禁用账户,这个功能单独拿出来写的原因可以猜猜。
#region 启用用户或禁用用户
/// <summary>
/// 启用用户或禁用用户
/// </summary>
/// <param name="UserName">用户名称</param>
/// <param name="IsEnable">是否启用 true是 false否</param>
/// <returns></returns>
public async Task<JsonView> IsEnableUser(string UserName, bool IsEnable)
{
var result = new JsonView();
DirectoryEntry UserDE;
using (DirectoryEntry entry = operateADHelper.IsConnected())
{
try
{
var UserPath = GetEntryPath(UserName, "user");//取用户路径
UserDE = entry.Children.Find(UserPath, "User");//获取用户对象
int UserAccountControl = (int)UserDE.Properties["userAccountControl"].Value;//获取该属性值
if (IsEnable == true)
{
var a = (int)ADUserEnum.NORMAL_ACCOUNT;//启用账户
var b = (int)ADUserEnum.ADS_UF_ACCOUNTDISABLE;//禁用账户
UserDE.Properties["userAccountControl"].Value = UserAccountControl - (int)ADUserEnum.ADS_UF_ACCOUNTDISABLE;//启用账户
}
else
{
UserDE.Properties["userAccountControl"].Value = UserAccountControl + (int)ADUserEnum.ADS_UF_ACCOUNTDISABLE;//禁用账户 ,如果只使用这个值可以来回切换启用禁用
}
UserDE.CommitChanges();
result.Code = 0;
result.Msg = "操作成功";
return result;
}
catch (DirectoryServicesCOMException ex)
{
result.Code = 1;
result.Msg = "操作失败" + ex.Message.ToString();
return result;
}
}
}
#endregion