繁体   English   中英

将.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服务器。 两者之间传递的信息非常敏感。 对数据库的每个查询都可以返回几千字节到4 MB的响应。 在SQL Server上执行查询时,我想知道发出请求的用户的登录名\\身份,以便我只能返回允许该用户查看的数据。

我试图决定将桌面应用程序直接连接到Azure SQL数据库还是创建Web API。

我的问题是:

  1. 直接连接到Azure SQL数据库或使用连接到服务器上数据库的Web API,您会建议哪个?
  2. 我知道在用户应用程序中将用户名和密码硬编码到SQL Server是一种不好的做法。 如果我直接连接到SQL Server,是否必须在SQL Server上为每个用户创建一个帐户,并在用户登录时要求用户提供其凭据,然后将其传递给SQL Server?
  3. 如果使用Web API,如何获取用户凭证? 同样,我是否必须为每个用户设置个人帐户? 我会使用OAuth或其他方法执行此操作吗? https://docs.microsoft.com/zh-cn/aspnet/web-api/overview/security/individual-accounts-in-web-api
  4. 会有人认可使用WCF数据服务吗?
  1. 不,如果将SQL数据库公开可用,则存在潜在的安全风险。 有一个用于ASP.NET Core身份提供程序,您可以确定要在数据库中存储用户的天气,也可以使用外部登录提供程序,如Facebook,Google或Microsoft。

  2. 如果要执行此操作,则应使用Azure Active Directory身份验证 ,可以使用它来验证应用程序和Azure SQL数据库的用户。 但是,如果您执行B2B应用程序或公司内部应用程序,则可以使用此功能。 如果要在Internet上提供公共应用程序,并允许所有人注册,则应该使用第一种解决方案。

  3. ASP.NET Core身份提供程序中对此进行了描述。

  4. 如果查看“ 在.NET Core和.NET Framework之间选择 ”一文,则不会显示“仅在.NET Framework中提供WCF服务器实现”,而仅在.NET Core中实现了客户端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM