2017-07-11 207 views
0

我正在開發一個Web應用程序,使用LDAP執行Active Directory更新。 當我在IIS 7上託管應用程序時,我在directoryEntry.CommitChanges();聲明處得到Access is denied錯誤。IIS應用程序池標識使用登錄用戶Windows標識

然後我發現應用程序池正在使用標識「IIS APPPOOL \ ASP.NET v4.0」來執行更新。

我需要使用Web應用程序的用戶的窗口帳戶作爲應用程序池的標識。在web.config中

  1. 添加>身份驗證模式=「窗口」
  2. 禁用匿名身份驗證在IIS
  3. 選擇內置帳戶「ApplicationPoolIdentity」作爲應用程序:

    我做了以下泳池的身份

但還沒有得到它的工作。

回答

3

你正在尋找的概念被稱爲模擬
documentation

  1. 打開IIS管理器,然後導航至要管理的級別。有關打開IIS管理器的信息,請參閱打開IIS管理器(IIS 7)。有關在UI中導航到位置的信息,請參閱IIS管理器中的導航(IIS 7)。
  2. 在功能視圖中,雙擊認證。
  3. 在身份驗證頁面上,選擇ASP.NET模擬
  4. 在「操作」窗格中,單擊「啓用」以使用具有默認設置的ASP.NET模擬身份驗證。
  5. (可選)在「操作」窗格中,單擊「編輯」以設置安全主體。
  6. 在「編輯ASP.NET模擬設置」對話框中,選擇「特定用戶」或「已通過身份驗證的用戶」。無論您決定如何,IIS都會將此身份用於ASP.NET應用程序的安全上下文。默認情況下,IIS 7被設置爲模擬經過身份驗證的用戶。
  7. 單擊確定以完成或繼續執行下一個可選步驟以將標識更改爲模擬。
  8. (可選)單擊設置更改特定用戶身份。
  9. 在設置憑證對話框中,輸入用戶名中的現有用戶帳戶的名稱,密碼中與該用戶帳戶關聯的密碼,然後確認新帳戶IIS的匿名用戶密碼中的確切值訪問。
  10. 單擊確定關閉設置憑證對話框。
  11. 單擊確定關閉編輯ASP.NET模擬設置對話框。
+0

嗨,謝謝你的建議。
我試過了,當我檢查「System.Security.Principal.WindowsIdentity.GetCurrent()。Name」的值時,仍然顯示「IIS APPPOOL \ ASP.NET v4。0「,這意味着應用程序仍然使用IIS APPPOOL標識來運行Web應用程序,而不是登錄用戶的Windows帳戶。
這是我正在使用的IIS身份驗證和模擬設置的屏幕截圖:https://image.ibb.co/bVaNXv/IIS_Authentication.png –

+0

我也嘗試過在web.config中使用「identity impersonate = true」,也不起作用 –

相關問題