2012-06-04 74 views
0

我需要使用運行在將連接到Web服務的遠程客戶端上的Windows應用程序。 Web服務將訪問SQL數據庫以驗證用戶和角色並執行其他任務。我正在使用ASP.NET成員來管理用戶和角色。我有ASP.NET成員資格,並在開發機器上工作的Web服務。我有一個服務參考的Windows客戶端,當我訪問不訪問數據庫的方法時工作,但是當我嘗試訪問訪問數據庫方法的服務方法時,我得到用戶沒有與受信任的SQL Server連接關聯。我得到各種權限錯誤取決於我試圖解決這個問題,但這是要點。我不希望Windows客戶端需要數據庫權限。我想它一個用戶名和密碼發送到Web服務,然後Web服務封裝Membership.ValidateUser(用戶名,密碼)使用Web服務爲Windows窗體客戶端運行SQL查詢

有人能告訴我如何設置呢?

回答

1

您應該考慮設置SQL Server以使用SQL和Windows身份驗證(混合模式)。它很可能只在Windows身份驗證模式下運行。你可以看看this鏈接開始。

聽起來像你設計的方式是,你將不得不爲每個用戶設置一個帳戶。根據我的經驗,最好是創建一個具有必要權限的特定SQL帳戶,並讓每個客戶端都使用該帳戶。你可以在連接字符串中指定它。

0

假設您在SQL中啓用了命名管道身份驗證,則可以將ASP.NET應用程序中的SQL連接字符串配置爲使用集成安全性(Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;)。然後在SSMS中,爲數據庫提供適當的ASP.NET用戶權限。 IIS使用的用戶取決於您運行的是哪個版本的IIS,並且可以在相關服務器的App Pool配置中看到。