C# 如何在WPF应用程序中集成和使用远程MySQL数据库

C# 如何在WPF应用程序中集成和使用远程MySQL数据库,c#,mysql,wpf,networking,C#,Mysql,Wpf,Networking,我目前正试图了解如何编写一个个人项目,该项目将使用MySQL作为数据库,使用WPF C作为本地客户端。基本上,它将是一个应用程序存储库(与GooglePlay风格几乎相同),需要登录,然后向用户提供安装应用程序的选择。让我困惑的是我将如何: 允许在系统上安装应用程序并启动,而无需事先安装mysql 访问MySQL数据库本身。如果是一个本地数据库,这相当容易,但是如何管理一个远程MySQL数据库呢?与此相关的另一个问题是,我是否必须在应用程序本身中硬编码我的MySQL名称和密码?如果是这样,如果

我目前正试图了解如何编写一个个人项目,该项目将使用MySQL作为数据库,使用WPF C作为本地客户端。基本上,它将是一个应用程序存储库(与GooglePlay风格几乎相同),需要登录,然后向用户提供安装应用程序的选择。让我困惑的是我将如何:

  • 允许在系统上安装应用程序并启动,而无需事先安装mysql

  • 访问MySQL数据库本身。如果是一个本地数据库,这相当容易,但是如何管理一个远程MySQL数据库呢?与此相关的另一个问题是,我是否必须在应用程序本身中硬编码我的MySQL名称和密码?如果是这样,如果有人能够访问我的应用程序,它不会在我的应用程序中创建一个安全漏洞吗?(我相信这就是你在php中所做的,但问题是,php是服务器端的,因此理论上,用户在没有ftp访问的情况下永远无法获取php代码。因为我在本地运行我的应用程序,任何人都可以混淆代码并获取这些信息,不是吗?)

另外,有人能指出一个好的MySQL数据库主机(免费还是不免费)?也许我没有搜索正确的东西,但是我找不到任何只提供MySQL数据库的主机


在任何情况下,有人能告诉我一些关于这件事的信息吗?

要实现您想要的,您应该考虑一种不同的架构:

  • MySQL数据库[服务器]
    此服务器保存您的数据等

  • Web服务(SOAP或REST)[服务器]
    这是访问MySQL数据库的唯一软件。理想情况下,这只能通过SSL(HTTPS)访问

  • WPF客户端[客户端]
    客户端不直接与MySQL通信,只通过WebService进行通信

至于如何保护凭据,您有一些选择:

  • 请用户输入密码,然后将其传输到WebService

  • 每个用户使用一个“客户端证书”(这允许在不更改客户端的情况下撤销服务器端的访问)


我知道什么应该是Web服务,但我不确定如何实现它。通过在网上搜索,它似乎是另一个正在运行并与本地应用程序交换信息的应用程序(如您所说)。这是否意味着我实际上需要一个VPS或专用服务器,以便24/24运行上述Web服务?如果这听起来很琐碎,我很抱歉。@zaedas99是的,它是一个“应用程序”(例如ASP.NET WebAPI),需要一些Web服务器(如VPS或专用服务器)才能运行。。。最好的情况是在同一台机器上同时运行(MySQL和WebService),并将MySQL配置为只接受“本地连接”。非常感谢您的帮助和澄清。