C# 如何更改Active Directory中用户的登录名

C# 如何更改Active Directory中用户的登录名,c#,.net,.net-3.5,active-directory,C#,.net,.net 3.5,Active Directory,我想更改Active Directory中用户的.NET应用程序登录名 我现在正以这种方式进行更改: DirectoryEntry userToUpdate = updatedUser.GetDirectoryEntry(); userToUpdate.Properties["sAMAccountName"].Value = user.NewLogin; userToUpdate.CommitChanges(); 但它并不像我预期的那样有效。当我为该用户签入广告“Active Di

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

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

DirectoryEntry userToUpdate = updatedUser.GetDirectoryEntry();  
userToUpdate.Properties["sAMAccountName"].Value = user.NewLogin;  
userToUpdate.CommitChanges();  
但它并不像我预期的那样有效。当我为该用户签入广告“Active Directory用户和计算机”条目时,在“帐户”选项卡上我看到:
-“用户登录名”属性未更新
-“用户登录名(Windows 2000以前版本)”属性已正确更新


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

尝试
userPrincipalName
而不是
sAMAccountName
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

您需要同时更新这两个链接。

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


如果您想同时更改这两个选项,请同时更改这两个选项。如果你想更改一个,请更改一个。sAMAccountName不包括域。正确,但登录时必须键入
domain\user
(一些应用程序为你放在'domain'中。我更新了以说明这一点。哈?此用户正在尝试更新帐户,但没有找到它。此外,他的帖子被标记为.net-3.5…不是v4.0