gpt4 book ai didi

c# - 最佳实践 : Connect WPF to remote SQL database

转载 作者:行者123 更新时间:2023-11-29 02:46:04 25 4
gpt4 key购买 nike

我知道关于这个主题有很多问题,但是经过四天的阅读和谷歌搜索,我有点卡住了,需要有人为我澄清一些事情。

我的情况:

我用 C# 开发了一个 WPF 应用程序。此应用程序需要连接到数据库,因为它存储用户帐户数据和其他信息。到目前为止,我通过设置数据源并使用 Fluent NHibernate 进行映射和 session ,在 Visual Studio 环境中使用本地数据库。现在我想通过 ClickOnce 将应用程序分发给用户,所以我需要从本地数据库切换到在线数据库。

我有一个网络服务器(Debian 8 Jessie 64 位,内核版本 3.16.0-4-amd64 (SMP)),SSH 访问和访问 i-MSCP 1.3.16 平台以管理服务器。我在服务器的一个域和一个 sql 用户中创建了一个数据库,我可以访问 phpmyadmin。我已按照步骤授予对任何 IP 的远程访问权限,如示例中所述 here SANDHYALAL KUMAR 着。第一个问题:如何检查远程访问现在是否已成功授予。因为当执行 mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION; 我得到 0 rows affected. by Putty 控制台?

第二个也是更重要的问题:现在如何将我的 WPF 连接到我的服务器。我读过,由于密码安全和数据库安全,我不应该直接连接到服务器,如下所示:

            ISessionFactory sessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2012
.ConnectionString(c => c
.Server("SSS")
.Database("DDD")
.Username("UUU")
.Password("PPP")
).ShowSql()
)
.Mappings(m =>
m.FluentMappings
.AddFromAssemblyOf<User>())
.ExposeConfiguration(cfg => new SchemaExport(cfg)
.Create(false, false))
.BuildSessionFactory();
return sessionFactory.OpenSession();

但是,我认为上述解决方案对我不起作用,因为我没有在线 MSSQL Server,对吗?还是我需要配置我现有的服务器?

是否有特定层或 API 可以解决我的问题。 WCF 或 REST 或 ADO.Net 是我的解决方案吗?我真的被所有这些不同的名称所困扰,所以我真的很感谢关于我的两个问题的一些解释和建议。

最佳答案

你的情况和我的情况差不多。我的应用程序也是 WPF (clickonce) 并连接到 Microsoft Azure Cloud SQL Server。我也挣扎了好几天,因为如你所知,安全永远是最重要的。

将密码放在桌面应用程序和分发中意味着向黑客提供密码。就像您评论的那样,使用 WCF 设置一个层并使 WCF 保存非对称(如 RSA)编码的密码。然后,服务器将仅使用非对称 key 对用户进行身份验证以进行解密。此私钥仅存在于服务器中。

第一个问题的答案)您可以编写一个 SELECT 查询来确认哪些登录名、用户具有这些角色、是否启用访问权限。我敢肯定互联网上有很多有用的例子。

希望这有助于您理解..

关于c# - 最佳实践 : Connect WPF to remote SQL database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42090478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com