如何为WinForms应用程序和SQL Server实现SSO(单点登录)
-
05-07-2019 - |
题
我们有一个WinForms应用程序,它使用SQL服务器来存储其数据。要对应用程序用户进行身份验证,我们使用SQL Server进行身份验证。用户必须具有数据库服务器上存在的用户名/密码才能登录。
到目前为止一切顺利。
现在,我们的一位客户希望我们实施单点登录。他们希望能够在不输入任何用户名/密码的情况下启动我们的应用程序,他们希望使用Windows来验证用户身份。
您对我们如何实现这一点有任何建议吗?
解决方案
参见此文 WinForms应用程序单行登录2行代码。
许多开发人员不知道可用于基于角色的验证的两个信息丰富的对象,并且还可以利用这些对象来验证对其应用程序的经过身份验证的访问(实质上是单点登录(SSO)),因为用户已经登录到桌面。这些是WindowPrincipal和WindowsIdentity对象。这个截屏视频的目的是揭开如何利用这些对象提供的丰富信息的神秘面纱。从2行代码开始。
其他提示
我会说使用活动目录和SSPI(也称为可信连接)。这通常会使用kerberos身份验证。
如果数据库中有用户的概念,例如 Users
表,则可以添加另一列或使用单独的表来存储该用户的域登录名(例如,johnsmith @ somedomain。例)。你更常见的是somedomain \ johnsmith,但@ method是更新的首选表示。
不隶属于 StackOverflow