2011-01-06 67 views
4

我想要做的是:如何允許匿名訪問我的IIS站點,但使用Windows身份驗證連接到SQL Server?

  • 允許匿名用戶訪問我的ASP .NET站點。
  • 使用Windows身份驗證爲站點訪問Sql Server。它將登錄到Sql Server,特別爲該站點預留一個域帳戶(並且最好在同一個帳戶下執行所有操作)。

在網絡上的每一篇文章告訴你這樣做:

<authentication mode="Windows"/> 
<identity impersonate="true"/> 
在Web.config中

。但是,如果您希望用戶使用Windows身份驗證進行登錄,我收集的結果是只有。它與登錄到SQL Server的服務器無關(除了上述2的組合意味着用戶的身份驗證也將用於連接到數據庫)。它是否正確?鑑於我的Windows帳戶可以訪問服務器和網站被連接到數據庫文件,這似乎很難測試....

看來,如果我:

  • 設置應用程序池標識的域帳戶
  • 能夠在網站上匿名訪問使用域帳戶
  • 使用一個連接字符串使用Windows身份驗證

那麼網站將連接到SQL Server通過Windows身份驗證。此外,只要模擬關閉,它將使用域帳戶。它是否正確?

回答

2

in Web.config。不過,我收集的這個 只有當您希望用戶使用Windows身份驗證登錄 時。它有什麼 到SQL Server

這部分是真實的做的服務器日誌 。如果代理安裝正確,模擬帳戶將用於登錄SQL Server。您沒有看到這一點,因爲在大多數環境中,委託需要明確設置。委託是一種更強大的模擬形式,可以讓服務器進程(在你的情況下,IIS進程)在作爲客戶端訪問遠程資源(在你的情況下,SQL服務器)。有關更多信息,您可以谷歌ASP.NET委託。我說這是部分真實的,因爲在一些簡單的環境中,你甚至不需要任何特殊的配置。代表團正在工作。例如,如果您的SQL服務器與IIS服務器在同一臺計算機上運行。另一種情況是,你的IIS服務器在Active Directory域控制器上運行(非常少見)。在這兩種情況下,或者在一個正確配置了代理的機器上,你的上述語句將是錯誤的。

看來,如果我:

  • 設置的應用程序池標識的 域帳戶
  • 能夠在網站上匿名 訪問使用域 帳戶
  • 使用一個連接字符串與 Windows驗證

然後網站 將通過Windows 身份驗證連接到SQL Server。此外,只要 模擬關閉,它將使用 域帳戶。它是否正確?

是的,這是正確的。

考慮到我的Windows帳戶具有 訪問哪些網站被連接到 服務器和數據庫 上的文件,這似乎很難測試....

很容易測試如果您有兩個域帳戶(或一個域帳戶和一個本地帳戶)。將App Pool標識設置爲使用您的DomainAccount1。授予只有 DomainAccount1有權訪問您的數據庫。使用另一個帳戶(域帳戶或本地帳戶)在另一臺計算機上訪問您的網絡應用程序。測試Web應用程序是否可以正確訪問您的數據庫。

1

如果我正確地關注你,你是對的;你做不是想要使用模擬/身份驗證來做你想做的事情。適當地設置App Pool身份,並確保用戶帳戶具有對SQL Server的適當訪問權限。

0

而不是使用Windows帳戶,您可以創建一個單獨的Sql登錄,即一個用戶名/ pwd,而不是使用連接字符串。

+0

事實上,這將工作。然而,我的目標之一是使用Windows身份驗證來訪問Sql Server數據庫。 – apollodude217 2011-01-06 16:47:45

+0

好的,那麼在這種情況下,您需要在自定義帳戶下運行應用程序池並相應地設置權限。請檢查步驟3(使用自定義服務帳戶):http://msdn.microsoft.com/en-us/library/ff647396.aspx#paght000008_step3 – gbs 2011-01-06 17:12:43

相關問題