2012-09-17 127 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

相關問題