2014-06-13 72 views
1

繼試圖Active Directory的訪問被拒絕例外的DirectoryEntry.Invoke ChangePassword

directoryEntry.Invoke("ChangePassword", "old password", "new password"); 
directoryEntry.CommitChanges(); 

錯誤的詳細信息時的MVC Web API代碼工作沒有錯誤

directoryEntry.Invoke("SetPassword", "desired password"); 
directoryEntry.CommitChanges(); 

但相同的應用程序/服務帳戶得到一個錯誤: System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

是否調用ChangePassword需要SetPassword的不同權限?

+1

是否有可能爲該用戶取消選中「更改密碼」標誌? –

+0

@Cory你能告訴我該如何驗證? – joym8

+0

@Cory抱歉,這是懶惰。在用戶屬性中找到該標誌,並將其檢查(用戶無法更改密碼)。取消選中它,錯誤消失。如果您將其添加爲答案,我會將其標記爲答案。順便說一句,新的錯誤是「指定的網絡密碼不正確(來自HRESULT的異常:0x80070056)」即使我輸入了正確的當前密碼。 – joym8

回答

2

由於「用戶無法更改密碼」設置標誌被檢查,您可能會收到拒絕訪問錯誤。您想要更改其密碼的任何用戶都需要取消選中該設置。

1

您在IIS7的應用程序池標識用戶設置它具有管理員權限更改廣告密碼

你可以找到它在IIS 7個>>應用程序池的用戶,然後選擇您使用的應用程序,然後應用程序池右鍵點擊它並選擇高級設置,然後找到過程模型,在這裏你會發現身份屬性設置了具有管理權限的正確用戶