【发布时间】:2012-02-16 14:19:38
【问题描述】:
我正在使用以下 API(C++) 集通过 MS SQL db 验证 Windows 用户名和密码(域帐户):
- 登录用户
- 创建环境块
- ImpersonateLoggedOnUser
- SQLDriverConnect
它工作得很好,但是当服务帐户(域帐户,但您无法使用它登录 Windows)用于验证时会出现问题。它在 LogonUser API 中失败。
在 C++ 或 .net (Framework 2.0) 中是否有任何方法可以在不使用模拟机制的情况下使用 MS SQL db 验证域帐户?
谢谢,
拉胡尔
【问题讨论】:
-
如果你暂时将服务帐号的权限授予LogonLocal,那是否有效?
-
@Paul 不允许修改权限。
-
我仍然不能 100% 确定您要做什么。您是否有一个桌面应用程序试图作为服务运行?您是否正在运行服务并尝试登录其他用户。
-
@paul 我正在开发一个桌面应用程序,它有一个提供 SQL 凭据的页面。一旦用户提供了凭据,我就会使用我在问题中提到的一组 API 来验证这些凭据。在一种情况下,用户提供了服务用户凭据,我在那里遇到了问题。服务用户帐号拥有 SQL 权限,但您无法使用它登录窗口。
标签: c# c++ sql-server windows winapi