【问题标题】:C++/.net (Framework 2.0) MS SQL db windows authentication with user name and passwordC++/.net (Framework 2.0) MS SQL db windows authentication with user name and password
【发布时间】:2012-02-16 14:19:38
【问题描述】:

我正在使用以下 API(C++) 集通过 MS SQL db 验证 Windows 用户名和密码(域帐户):

  1. 登录用户
  2. 创建环境块
  3. ImpersonateLoggedOnUser
  4. 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


【解决方案1】:

也许不使用LogonUser,也许您可​​以尝试使用LogonUserEx,它允许您指定您请求的登录类型。 dwLogonType = LOGON32_LOGON_SERVICE

【讨论】:

  • 谢谢保罗。我使用 dwLogonType 作为 LOGON32_LOGON_NETWORK_CLEARTEXT 它工作。
猜你喜欢
  • 2019-06-23
  • 2020-10-13
  • 2021-11-06
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
  • 2021-10-19
  • 1970-01-01
相关资源
最近更新 更多