2012-08-17 79 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用于传输安全。

相关问题