将 .NET Core 桌面应用程序连接到 Azure SQL Server 的最佳方式是啥

Posted

技术标签:

【中文标题】将 .NET Core 桌面应用程序连接到 Azure SQL Server 的最佳方式是啥【英文标题】:What is the best way to connect a .NET Core desktop application to a Azure SQL Server将 .NET Core 桌面应用程序连接到 Azure SQL Server 的最佳方式是什么 【发布时间】:2019-04-29 22:58:08 【问题描述】:

我正在 .NET Core 中构建一个桌面应用程序。我将把这个应用程序连接到 Azure SQL 服务器。两者之间传递的信息非常敏感。对数据库的每个查询都可以返回几千字节到 4 MB 的响应。在 SQL 服务器上执行查询时,我想知道发出请求的用户的登录\身份,这样我就可以只返回允许该用户查看的数据。

我正在尝试将我的桌面应用程序直接连接到 Azure SQL 数据库还是创建 Web API。

我的问题是:

    您会推荐哪种方式,直接连接到 Azure SQL 数据库还是使用 Web API 连接到服务器上的数据库? 我知道在我的应用程序中将用户名和密码硬编码到 SQL 服务器是一种不好的做法。如果我直接连接到 SQL 服务器,我是否必须在 SQL 服务器上为每个用户创建一个帐户,并在用户登录时询问他们的凭据,然后将其传递给 SQL 服务器? 如果我使用 Web API 如何获取用户凭据?同样,我是否必须为每个用户设置单独的帐户?我会使用 OAuth 或其他方法来执行此操作吗? https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/individual-accounts-in-web-api 有人会支持使用 WCF 数据服务吗?

【问题讨论】:

您好!你的问题太笼统了。在这里,在 *** 上,我们处理编码问题,因此,如果您的代码有问题(异常、不可预测的行为等),请编辑您的问题或询问另一个问题。您可能还会发现此链接很有用:How to Ask 好的。对不起。有没有办法让我删除问题? 试试这个:docs.microsoft.com/en-us/azure/app-service/… 【参考方案1】:

    不,如果您公开您的 SQL 数据库,这会带来潜在的安全风险。有一个identity provider for ASP.NET Core,您可以决定要将用户存储在数据库中的天气,也可以使用 Facebook、Google 或 Microsoft 等外部登录提供程序。

    如果你想这样做,你应该使用Azure Active Directory Authentication 你可以使用它来验证你的应用程序和 Azure SQL 数据库的用户。但是,如果您为您的公司做 B2B 应用程序或内部应用程序,这可以工作。如果您想在 Internet 上提供一个公共应用程序,并让每个人都注册,您应该使用第一个解决方案。

    在identity provider for ASP.NET Core文章中有描述。

    你不能,如果你查看 Choosing between .NET Core and .NET Framework 文章,它说“WCF 服务器实现目前仅在 .NET Framework 中可用”只有客户端在 .NET Core 中实现。

【讨论】:

以上是关于将 .NET Core 桌面应用程序连接到 Azure SQL Server 的最佳方式是啥的主要内容,如果未能解决你的问题,请参考以下文章

如何将 .NET Core ASP 应用程序连接到 MS Access 数据库

.Net Core ClientWebSocket:无法连接到服务器

在 Linux 上从 .NET Core 连接到 Informix

雪花:如何使用 .NET Core 连接到雪花

通过 SSH 隧道连接到 .Net Core 中的 AWS DocumentDb

使用新的 ASP.NET Core 应用程序连接到 SQL Server 时出现问题