2012-08-17 76 views
2

首先,我看看她關於此問題的每個相關主題。然而,他們中沒有人完全回答我的問題。桌面應用程序的身份驗證

目前我工作的桌面應用程序,在C#/ WPF編碼,同時需要進行身份驗證和存儲用戶自定義列表等MySQL連接

然而,問題是,顯然是讓每個人都可以遠程連接到MySQL數據庫不是很好的做法。此外,我的當前主機要求將IP列入白名單,然後才能連接到數據庫。

我對此有何選擇?

預先感謝您

回答

4

你應該考慮創建一個Web服務(SOAP),HTTP Web的API(REST)或其他一些中間件抽象的數據存儲。

這樣做的好處:

  • 可用於移動多業務邏輯的出你的桌面應用程序,進入中間件
  • 可以讓你保持業務邏輯出SQL的,這可能是一個瓶頸
  • 允許您在不重新分配桌面應用程序的情況下更新業務邏輯(如果您沒有直接控制所有桌面,則更容易)。
  • 允許您控制身份驗證(許多Web服務器都有自己的模塊,身份驗證方法)。您的應用將控制訪問並使用自己的服務帳戶訪問存儲。
  • 讓您完成更改您的數據存儲(讓你儲存一些在SQL中,一些在MongoDB中,一些雲存儲的未來說 - 再次,而無需更新所有桌面
  • 允許你擴展(例如,讀/寫數據庫副本)

如果您已經在使用C#,那麼新的MVC4 web-api應該是一個很好的選擇。 Read more here:

http://www.asp.net/web-api

如果您走這條路線,您可以控制服務中的訪問權限,並讓您的服務通過連接字符串中的憑據訪問數據庫,或者如果您使用IIS,應用程序池上的憑據映射到您的站點。

如果您要發佈桌面應用程序(您沒有託管數據庫),那麼如果您的客戶不想安裝/管理IIS,您也可以自行託管web-api到它自己的exe文件中。

最後,如果你的mysql是在線,您的中間件可以在雲(天藍色等)

+0

輝煌的資訊,幫了很多,謝謝 – Alex 2012-08-17 12:06:26

2

創建一個Web服務,如與WCF或MVC的Web API在您的應用程序可以通過自己的憑據和身份驗證。我建議https用於傳輸安全。

相關問題