5

我想从 Active Directory 更改用户的 .NET 应用程序登录。

我现在正在以这种方式更改它:

DirectoryEntry userToUpdate = updatedUser.GetDirectoryEntry();  
userToUpdate.Properties["sAMAccountName"].Value = user.NewLogin;  
userToUpdate.CommitChanges();  

但它不像我预期的那样工作。当我检查此用户的 AD“Active Directory 用户和计算机”条目时,然后在“帐户”选项卡上,我看到:
-“用户登录名”属性未更新
-“用户登录名(Windows 2000 之前) " 属性已正确更新。

如何从 C# 代码正确更新 AD 中的登录名?我应该在 DirectoryEntry 中设置什么属性,或者有另一种方法可以更改登录名。

4

3 回答 3

7

AD中有两个登录名:

sAMAccountName    = User logon name, (pre-windows 2000) 
    Format/Usage: domain\user.name (note, your code will only populate user.name)

userPrincipalName = User logon name
    Format/Usage: user.name@domain.local

您需要同时更新两者。

于 2012-09-17T21:00:24.283 回答
1

尝试userPrincipalName代替sAMAccountName.

于 2012-09-17T20:56:23.843 回答
0

这是一个非常好的链接,您可以参考,请务必查看页面底部以查看其完整使用情况

通过 C#.Net 3.5 在 Active Directory 中的所有内容(使用 System.DirectoryServices.AccountManagement)

于 2012-09-17T21:03:54.907 回答