2012-09-17 100 views
4

我想在我的.NET应用程序登录用户的Active Directory中进行更改。如何在Active Directory中更改用户的登录名

我改变了它现在是这样的:

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

但正如我希望这是行不通的。当我在AD“Active Directory用户和计算机”条目中检查此用户时,然后在选项卡“帐户”上看到:
- “用户登录名”属性未更新
- “用户登录名-Windows 2000)“属性被正确更新。

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

回答

7

有公元两个登录名:

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: [email protected] 

您需要同时更新。

+0

sAMAccountName不包含域。 – Joe

+0

正确,但是当你登录时,你必须键入'domain \ user'(某些应用程序放在'domain \'中,我已更新,以便明确。 – Nate

1

尝试userPrincipalName而不是sAMAccountName

+0

同时改变.... – Nate

+0

变化都。如果您想更改一个,请更改一个。 – Joe

相关问题