2011-06-01 34 views
4

爲了安全起見,我想避免將用戶名和密碼放在連接字符串中,因此我使用「Persist Security Info = true; Integrated Security = SSPI」。當數據庫和Web站點位於同一臺服務器上時,我可以通過分配用戶機器名\ aspnet與nt authority \ local service配合使用來實現此目的。但是,當網站和數據庫位於單獨的machnines上時,在SQL Server上進行設置的方法是不同的。我不知道如何做到這一點。誰能幫我?ASP.Net與SQL Server中的數據安全

回答

2

假設您的IIS服務器應用程序池作爲NETWORK SERVICE運行,請在您的SQL Server上爲DOMAIN/MACHINE $創建登錄並授予對安全對象的訪問權限。確保你添加美元符號。

3

在IIS管理控制檯中創建新的應用程序池,將其標識設置爲要用於連接到服務器的域帳戶並將您的應用程序配置爲使用此應用程序池。在連接字符串中配置Windows身份驗證。

問候

彼得

1

我提供了以下回答另一個問題Web service with database : SqlException。我相信這也可以幫助你。這些步驟適用於IIS 7.5和ASP.NET 4.0,但其他版本的基本概念也相同。

如果你在你的環境中的Active Directory域的設置,我建議 如下:

  1. 創建的域帳戶說MyDomain\webappuser,其中MYDOMAIN將Active Directory域和webappuser會成爲該域中的Windows用戶帳戶。在SQL中,爲此新的域帳戶用戶提供訪問數據庫的適當權限。

  2. Internet Information Services (IIS) Manager中,將應用程序池更改爲在此服務帳戶下運行。如果您正在運行IIS 7.5,可執行以下步驟來執行此操作:

  3. IIS中,展開您的<server name>節點並單擊Application Pools

  4. 最好創建一個新的Application Pool,以免打擾可能使用應用程序池ASP.NET v4.0的其他應用程序的功能。

  5. 創建新的應用程序池(比如CustomAppPool)類似於ASP.NET v4.0的應用程序池,不同之處在於新的應用程序池將使用標識新創建的域帳戶MyDomain\webappuser而不是通常的ApplicationPoolIdentity的

  6. 在虛擬目錄/網站,您的Web服務被部署到,改變應用程序池屬性,以使用新創建的應用程序池CustomAppPoolAdvanced Settings選項。

希望有所幫助。