2009-04-10 47 views
1

我有一個ASP.Net應用程序(在Win2K上)使用Windows身份驗證和模擬。我們用下面的代碼更改密碼:如果用戶對象上的ChangePassword未成功鎖定帳戶

Dim objDE As DirectoryEntry 
'... 
objDE.Invoke("ChangePassword", txtOldPassword, txtNewPassword) 

此代碼的工作進展順利,但如果有多個不成功的嘗試不會鎖定帳戶。如果多次提供不正確的密碼(如策略中指定的),是否有任何方法可以使此代碼鎖定帳戶?我無法提升用戶權限,因爲這可能會降低系統的安全性。

回答

1

我不確定一般用戶是否有權直接鎖定自己的帳戶。然而,一種方法做這樣將是:

objDE.InvokeSet("IsAccountLocked", true) 

有關.NET一個很好的資源上的Active Directory,請參閱this article

我對上述鏈接是C#的appologies,如果你需要一個很好的轉換器嘗試this one

+0

不幸的是,我們不能使用這個解決方案,因爲它需要提升我們無法接受的用戶權限。 – 2009-04-21 17:27:39

+1

您是否可以不創建服務帳戶來執行身份驗證?該帳戶無需交互式登錄。 使用用戶憑據登錄的另一個問題是即使他們的帳戶被禁用仍然有可能! 作爲一種破解,雖然我討厭提及它,但您可以通過嘗試多次使用不正確的密碼登錄來鎖定其帳戶。 – codemonkeh 2009-04-22 04:39:00

+0

你提出的黑客實際上是一個好主意。我在想同樣的觀點。 – 2010-08-03 19:06:35

相關問題