0

我從升級ASP.NET 4.0應用程序:最佳方法

Windows Server 2003和IIS 6

到:

Windows Server 2008和IIS 7.5

此應用程序基於ASP.NET Web窗體而不是MVC。我目前使用SQL身份驗證,但我想遵循新環境中的最佳實踐。

IIS 7.5計算機和SQL Server 2008計算機都將駐留在帶有自己的域控制器的DMZ中。如果我們可以在開發,測試和產品環境中使用類似的連接字符串,那將會很好。這種情況的最佳做法是什麼?我讀過三個選項。

  1. ApplicationPoolIdentity
  2. 在域
  3. SQL認證

這裏是鏈接到討論相關問題的問題創建自己的服務帳戶,但似乎沒有任何回答我的具體問題。

User ASP.NET Runs Under

Assign Permissions to ApplicationPoolIdentity Account

回答

1

我推薦運行應用程序池的AD帳戶。然後,可以在同一個帳戶的SQL服務器上創建權限。應用程序所使用的連接字符串將不必包含任何信息(可信連接),並且您將不必擔心與安全有關的一件事。作爲額外的預防措施,請從所有用戶組中刪除該AD帳戶,除此之外不要將其用於其他任何用途(應用程序池)。授予該用戶對網站文件的讀取訪問權限,並僅將權限寫入需要寫入的文件夾(例如,轉儲日誌文件)。

+0

謝謝,我認爲這回答了我的問題,但我仍然有一個問題。微軟在創建ApplicationPoolIdentity構造時遇到了很多麻煩。如果爲每個應用程序池創建一個AD帳戶是有意義的,他們爲什麼會感到困擾呢? AD賬戶和ApplicationPoolIdentity之間的權衡是什麼? – jtherkel 2012-02-02 18:11:05

+0

並非每個人都有AD設置。然後,並非每個網站都將使用網絡共享文件夾和/或MS SQL服務器(等)。 – 2012-02-02 18:24:56

+0

我假設ApplicationPoolIdentity在系統(操作系統)上的權限比任何其他用戶(例如手動創建時)都要少,而且這比訪問磁盤上的文件還要多(例如,它可能只訪問對asp.net,磁盤,註冊表等有什麼影響)。 – 2012-02-02 19:50:35

0

至於最佳實踐而言,我不認爲任何你上市是比其他的更好的3個選項;如果使用得當,他們都可以安全有效地完成工作。您的決定應基於哪些因素考慮到您的特定環境,公司政策等因素而爲您提供哪些優勢,但再次,它們都不是壞習慣。