首先,我看了一下她关于这个问题的每一个相关话题。然而,他们都没有成功地完全回答我的问题。
目前我正在开发一个用 C#/wpf 编码的桌面应用程序,它需要 MySQL 连接来进行身份验证和存储用户自定义列表等。
但是,问题在于,显然允许每个人远程连接到 MySQL 数据库并不是一个好的做法。此外,我当前的主机需要将 IP 列入白名单,然后才能连接到数据库。
我对此有什么选择?
先感谢您
首先,我看了一下她关于这个问题的每一个相关话题。然而,他们都没有成功地完全回答我的问题。
目前我正在开发一个用 C#/wpf 编码的桌面应用程序,它需要 MySQL 连接来进行身份验证和存储用户自定义列表等。
但是,问题在于,显然允许每个人远程连接到 MySQL 数据库并不是一个好的做法。此外,我当前的主机需要将 IP 列入白名单,然后才能连接到数据库。
我对此有什么选择?
先感谢您
您应该考虑创建一个 Web 服务 (SOAP)、http web-api (REST) 或其他一些中间件来抽象您的数据存储。
这有以下好处:
如果您已经在使用 C#,那么新的 MVC4 web-api 应该很合适。在这里阅读更多:
如果您走这条路,您可以控制服务中的访问,并让您的服务通过连接字符串中的凭据访问数据库,或者如果您使用 IIS,应用程序池上的凭据映射到您的站点。
如果您要交付您的桌面应用程序(您没有托管数据库),那么如果您的客户不想安装/管理 IIS,您也可以在它自己的 exe 中自行托管 web-api。
最后,如果您的 mysql 在线,您的中间件可能在云中(天蓝色等...)
创建一个 Web 服务,例如使用 WCF 或 MVC Web API,您的应用程序可以在其中传递其凭据并进行身份验证。我建议使用 https 来保证传输安全。