我最近一直在爲客戶端開發ASP.NET項目。該項目將數據庫從舊的Oracle數據庫遷移到新的SQL Server 2008數據庫。遷移進展順利,大部分程序並沒有花費很長時間才能解決。然而,我們現在有一個問題,直到現在,我們一直在使用SQL Server身份驗證並使用用戶名和密碼從.NET代碼訪問數據庫。下面顯示連接字符串:.NET身份驗證問題
<add key="DatabaseConnectionString" value="Data Source=DATASOURCE;Initial Catalog=DATABASE;User Id=USERID;Password=PASSWORD;"/>
這是工作的罰款不過最近我收到來自客戶說電子郵件:
「而不是使用本地SQL帳戶的.NET應用程序訪問數據庫你可以使用Active Directory帳戶嗎?在web.config中,它會說<domain name>/<username>
,而不僅僅是<username>
。「
我感到困惑的是:
我一定到SQL Server中的身份驗證模式更改爲Windows身份驗證? 客戶是否有意將其從<username>
更改爲<domain>/<username>
或其他方式? 在web.config中,我需要對用戶名進行更改嗎?它在連接字符串中嗎?
對此的任何幫助將是偉大的。
還林不知道,如果你需要知道這一點,但我無論如何都加入它...
這是web.config中的身份驗證部分:
<identity impersonate="true"/>
<authentication mode="Windows"/>
登錄過程在應用程序內工作的方式(我認爲)它允許用戶連接到數據庫,如果他們在數據庫授權的域內。然後,一旦他們連接,它會檢查用戶名(域/用戶名)是否存在於Users表中。如果它們被授予訪問權限。 – 2012-07-17 15:08:06
我已經添加了Intergrated Security = SSPI,這讓我連接到數據庫。但是在我的數據庫中,我有一個模式前綴。所以我的所有存儲過程都在一個模式中。當.NET代碼嘗試調用過程時,它不會添加前綴架構,也無法找到存儲過程。我知道改變deafult模式可以解決這個問題,但是因爲我們使用一組用戶(域用戶組),所以我們無法改變默認模式。 – 2012-07-17 15:08:28
在更改爲集成安全性之前,是否在過程調用中添加了前綴? – 2012-07-18 02:55:49