1

我的web應用程序使用.NET 3.5框架,VS 2008與SQL Server數據庫。我正在使用Forms身份驗證和通用登錄來驗證用戶對aspx頁面的訪問權限。有沒有一種方法可以將用戶的表單身份驗證憑據(與其Windows登錄名不同)傳遞給sql服務器連接字符串,以便他們的數據庫權限可以基於該登錄名?將窗體Auth用戶憑據傳遞到SQL Server數據庫連接

回答

1

你可以構建一個連接字符串,插入Forms Authentication用戶名和密碼(你必須保存在某個地方)。這只是簡單的字符串操作 - 使用用戶名和密碼的佔位符連接字符串。

一個缺點是您將無法共享不同用戶之間的池連接,因此不會從連接池獲益。

在擁有少數用戶的網站上,這很快就會成爲問題。

+0

非常感謝您的回答 - 我會在哪裏保存用戶名和密碼?如果你有一個連接字符串如何在web.config中看到的例子,那對我來說是一個很大的幫助。謝謝! – Sarah 2010-03-09 17:06:54

+0

用戶名將從HttpContext.Current.User中獲得。您必須自行管理的密碼 - 例如,您必須在用戶登錄時將其保存在某處(例如,在ASP.NET緩存或某處的靜態字典中)。如果不瞭解更多關於您的需求的信息,最合適的就很難說 - 正如答案中指出的那樣,這種方法不適用於擁有少量用戶的站點,所以我假設您的需求是相當基本的。 – Joe 2010-03-09 19:00:24

+0

我認爲這是可行的,因爲只有少數用戶會一次訪問該應用。我非常感謝幫助 - 謝謝! – Sarah 2010-03-19 16:47:46