.net winforms应用程序的安全连接

本文关键字:安全 连接 应用程序 winforms net | 更新日期: 2023-09-27 18:16:43

我正在开发一个。net Winforms应用程序,我需要确保连接到sql server 2008数据库。我计划创建一个web服务作为中间层,它将处理身份验证并提供数据操作。有更好的办法吗?.net有这样的组件或工具吗?最好的技术是什么?

.net winforms应用程序的安全连接

定义"secure"。显然,您希望将对数据的访问限制在真正需要该数据的用户。然而,需要更多关于体系结构的信息;这是一个内部应用程序,只会在一个(安全的)局域网,VPN或托管环境中使用?或者这是一个在你无法控制的电脑上使用的应用程序,它将通过互联网传输数据?您需要多少安全性取决于使用该软件的用户类型、来自何处以及数据的敏感程度。

MSS具有相当好的内置安全性。您可以将SQL用户绑定到Windows域帐户,您可以基于用户或角色以无数种方式限制"可安全性"(表、视图、sp等),等等。我会首先考虑这些功能,并认真考虑在您的安全计划中利用它们。定义一个SQL用户供特定软件的任何用户使用,该用户具有执行软件可能要求的任何操作的权限,这是简单、通用且高度不安全的。

如果这还不够好,或者您想要完全抽象您的数据层(例如,如果您需要软件能够指向从MSS到Oracle到MySql的任何数据库类型),那么使用服务代理实现Repository模型可能是一个好主意。像Brian一样,我鼓励你看看WCF。WCF服务是高度可配置的,可以提供独立的身份验证和加密。一个设计良好的WCF服务确实是非常安全的。

在服务后面,您可以实现Repository模式,该模式抽象了如何从数据存储中检索数据的细节,并公开了简单的方法,这些方法返回包含您想要的现成形式的数据的对象。现在,您的服务方法将只是1:1地映射到Repository方法,可能还会转换为可序列化的datcontract对象,而不是服务两端可用的更丰富的域模型。

您是否考虑过使用WCF构建服务层?WCF可以从实际的物理数据库中带来一个全新的抽象和安全层。

WCF还允许使用比传统web服务更安全的绑定,内置日志记录。

另外,如果你想要一本关于。net安全的好书,可以看看这本书:

  • .NET开发人员Windows安全指南/Keith Brown