winforms - 如何在 Windows 窗体中实现安全组件?

标签 winforms security user-management

从 ASP.NET 进入 WindowsForms 应用程序开发,我期待看到类似的控件可以使用。令我惊讶的是,我没有看到任何安全控制(登录、用户管理等)
我是否遗漏了什么,或者我必须为应用程序实现自己的安全性(基于角色的安全性、用户管理等)?
该应用程序供内部使用(10 -20 个用户),但由于敏感数据,安全性非常重要。 (MSSQL Server 2005 在后端,.NET 3.5)
任何信息,将不胜感激。
编辑:
我想我的问题是“WinForms 中是否有类似 ASP.NET 的成员资格提供程序?”
编辑2:
经过一番谷歌搜索后,我发现 this article ,我会尝试一下,任何其他建议表示赞赏。

最佳答案

由于您没有公认的答案,并且由于我偶然发现了这个问题并研究了另一个问题,因此我将尽力为您提供一些指导。

正如已经指出的那样,win 表单应用程序中的用户管理和基于角色的安全性并不是真正适用于客户端的东西。在网络类比中,想象一下尝试仅使用 javascript 和 cookie 来实现所有安全性,而不在服务器端保留任何信息。默认是不安全的。

正如也有人建议的那样,您可以对数据库实现安全性,并让您的用户从您的 win 表单直接连接到数据库。我强烈建议您不要修读这样的类(class)。用户管理将成为一场噩梦。你需要一个中间层。

您应该做的是构建一个实现基于角色的安全性的 Web 服务(因为您熟悉它——那里有更好的授权选项)并具有自定义身份验证存储。如果使用 WCF 构建 Web 服务,则可以使用在 ASP.NET 中使用的相同 RoleProvider 和 MembershipProvider 类。

该 Web 服务处理系统的所有业务逻辑,并负责连接到数据库。它提供了一个安全的抽象层,并减少了管理用户所需的数据库管理量。你的 win 表单应用程序变成了一个 UI shell,只负责处理用户交互和前期数据验证(你也应该在中间层验证),不负责其他任何事情。

关于winforms - 如何在 Windows 窗体中实现安全组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/784608/

相关文章:

c# - 如何在 Winform 中通过 Numpad 键控制按钮?

c# - 鼠标进入/离开Form和Button子事件问题

c# - 按钮的动画发光效果 - C# Windows 窗体

security - 这是实现 'remember me' 功能的合理方法吗

javascript - google-chrome 中的 XMLHttpRequest 不报告进度事件

PHP - 安全性最好的方法是什么?

asp.net - 在asp.net中使用表单例份验证时,是否可以使用iis 7来管理用户

java - 如何处理Android应用程序的更多用户(拥有自己的帐户)?多线程?

C# 应用程序(所有用户安装)应为每个用户使用 %appdata%(甚至 runAs Admin 和/或在 RDP session 中)

c# - 如何确定一个控件是否是其他控件的容器