2011-03-30 122 views
0

我想在網站設置項目中使用自定義操作創建數據庫。但我在「網站設置項目」中遇到了一個問題,但在使用常規「安裝項目」時,每件事情都沒有問題...如何使用c#使用域帳戶連接到數據庫?

問題來自身份驗證時,我想訪問數據庫。看來,當我使用「安裝項目」它使用我的實際用戶名,通過,&域。而在「網站設置項目」中,它使用我的計算機名稱&,因此它不起作用。因爲它無法訪問數據庫。

所以,我需要一種方法來告訴網站使用我的帳戶(我會通過它的自定義操作),其中包括我的用戶名,通過,&域。

我該如何在C#中做到這一點?是否有一個API來做到這一點?

謝謝

回答

0

您無法在連接字符串中傳遞Windows憑據。如何做到這一點是在IIS(7及以上版本)中運行您的網站,並將您的應用程序池標識配置爲在您想要的帳戶下運行。看看這裏如何:http://technet.microsoft.com/en-us/library/cc771170(WS.10).aspx

雖然這不是通常的做法。通常你會在你的sql服務器上創建一個sql賬戶,然後在你的連接字符串中,你會這樣做:

「Data Source = [ServerName]; Initial Catalog = [DatabaseName]; User Id = [SqlAccount];密碼= [SqlAccountPassword]」

然後你可以去一次在SQL進一步加強和配置給該網站賬戶等

+0

我會質疑,你通常創建SQL帳戶訪問什麼。正常的做法是使用Windows帳戶並模擬該帳戶以使用SSPI進行連接 - 請參閱http://msdn.microsoft.com/en-us/library/ff647396.aspx – 2011-03-30 11:41:03

+0

@Steve,根據我的經驗,模擬不是規範。這是由於它打破了連接池並只能在Intranet方案中工作。 – BenCr 2011-03-30 11:49:12

+0

@Steve第一步是使用模擬,但老實說,我看不到任何理由爲什麼不寧願使用SQL帳戶,它只是給你更多的靈活性? – 2011-03-30 12:37:46