c# - 将 Azure 数据库与 Windows 窗体应用程序结合使用的最佳方式

标签 c# azure

我希望我们的 Windows 窗体应用程序在 Azure 数据库中注册客户的详细信息(在客户购买应用程序之后)。我可以在 Azure 上创建一个表,但我应该如何将数据放入表中?我认为直接与数据库对话不是执行此操作的正确方法。另外,我需要确保只有我们的应用程序可以访问数据库,并且从应用程序到数据库的信息都是加密的。非常欢迎任何有关正确方法的帮助。我正在使用 .NET 4.0 和 Visual Studios 2013。

我是否需要在服务器上运行一些可以由我们的应用程序调用的东西,然后添加/编辑数据库?最好的解决方案是什么?

最佳答案

直接与数据库对话的问题是您最终将通过应用程序将连接字符串分发到数据库。当然,它可以被加密,但在代码中的某个地方,您必须在连接到数据库之前对其进行解密。充其量,这是一个麻烦(例如,当将数据库从 DEV 更改为 PROD 时)。在最坏的情况下,它会增加攻击的表面积。

这是一个满足您大部分要求的标准解决方案:

  • 使用您需要的表和列设置 Windows Azure 数据库。
  • 设置具有适当安全性(SSL 或 WCF 某种形式的消息加密)的 Web 服务(Azure 托管或其他位置)。
  • 让客户端应用程序使用注册信息调用网络服务。

在这种情况下,您仍然打开未经身份验证的 Web 请求,以便能够对数据库执行写入操作,但您限制了他们执行这些操作的 channel 。您可以通过向请求添加巧妙的代理字符串或向消息添加某种形式的巧妙 secret /加密/校验和来强化实现。此外,根据您注册和激活的方式,网络服务可以根据之前注册的评估下载来验证传入信息。

希望这会有所帮助。

关于c# - 将 Azure 数据库与 Windows 窗体应用程序结合使用的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23762647/

相关文章:

python - 如何检查以确保 blob_service.put_block_blob_from_path() 在 python 中成功?

sql-server - Entity Framework 迁移数据库角色

c# - 当我使用 regasm 时,所有参数都输入为输入?那可以改变吗?

c# - 从 C++ 调用 (C#) .NET Core 方法

c# - FluentValidation:仅验证已更改的属性

Azure 存储,在安全性和速度之间进行选择

azure - 尝试通过 Active Directory 访问 Azure Databricks API 时出现错误 403 用户未授权

c# - 使用 C# 调用 php 脚本 (Unity)

c# - 如何修改 ListView 栏?

azure - Windows Azure 虚拟机反向 DNS PTR 解决方案?