基本设置很经典 - 您正在创建一个Windows Forms应用程序,该应用程序连接到一个数据库并执行各种企业级工作。当然,这样的应用程序将有许多用户在数据库中拥有不同的访问权限,并且每个用户都有自己的登录名和密码。如何确保Windows窗体应用程序的数据库安全性?
那么你如何实现呢?一种方法是为每个应用程序用户创建一个数据库登录,但这是一件相当严重的事情,甚至需要DB服务器上的管理员权限等。如果数据库服务器托管多个应用程序,管理员很可能不会对此感到高兴。
在网络世界中,通常会创建一个自己的“用户”表,其中包含所有必需的信息,并使用一个固定的数据库登录进行所有交互。这对于一个web应用程序来说都很好,但是windows窗体不能隐藏这个主登录信息,完全否定安全性。 (它可以尝试隐藏,但所有这些尝试很容易被打破)。
那么...有一些中间的方式吗?也许可以使用固定登录登录,然后从检查用户名和密码的特殊存储过程中提升权限?
加:好的,所以综合认证和windows群体在大多数情况下似乎是公平的选择,所以我接受了相关的答案。不过,如果任何人都可以想出一个非集成的身份验证解决方案,他们会从我这里得到赞扬。
同意。如果您熟悉ASP.NET模型,只需将WinForms应用程序视为模拟= true并且单个用户登录。 – 2010-03-21 12:19:09
好吧,如果您有Windows域,这是个好主意。如果你不......那么我认为它不是那么复杂,但仍然有这样的应用程序 - 小公司的应用程序等等。而且这些应用程序更可能使用共享数据库主机。 – 2010-03-21 12:41:43
无论如何Upvoted,但我仍然希望在接受答案之前看到有关非域方案的建议。 – 2010-03-21 12:42:22