加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 仅使用LogonUser()验证凭据

发布时间:2020-12-16 07:11:01 所属栏目:百科 来源:网络整理
导读:我们正在使用内部用户帐户系统开发应用程序,但希望能够使用Active Directory和/或 Windows帐户中的凭据.为此,我们将用户SID存储在应用程序用户表的字段中.我们的登录机制的功能如下: 提示用户输入域名,登录名,密码 拨打LogonUser(logon,domain,password,log
我们正在使用内部用户帐户系统开发应用程序,但希望能够使用Active Directory和/或 Windows帐户中的凭据.为此,我们将用户SID存储在应用程序用户表的字段中.我们的登录机制的功能如下:

>提示用户输入域名,登录名,密码
>拨打LogonUser(logon,domain,password,logon_type,logon_provider,&hToken)
>如果成功,请从hToken获取用户SID
>关闭hToken
>在我们的应用程序数据库中搜索具有给定SID的用户;如果找到,我们将被视为已登录该帐户.

出现的问题是:我们一直使用LOGON32_LOGON_NETWORK作为logon_type,但我们现在遇到了一些安全配置,其中“拒绝从网络访问此计算机”,这意味着禁止网络登录类型.

我的问题是我们应该在这种情况下使用什么登录类型?互动?除了提取用户的SID之外,我们实际上并没有使用Logon令牌.我们的应用程序有自己的内部组和权限;我们不以任何方式使用Windows组或权限.从Windows和域控制器的角度来看,我们所做的就是登录并快速注销.

或者我们是以完全错误的方式看待这个,我们应该完全使用其他一些登录方法?

谢谢

解决方法

当用户权限“从网络访问此计算机”未授予本地计算机上的所有人时,我也惊讶地发现具有LOGON32_LOGON_NETWORK类型的LogonUser()失败.

我使用以下解决方法:

>首先尝试使用LOGON32_LOGON_NETWORK类型的LogonUser().>如果失败并出现错误ERROR_LOGON_TYPE_NOT_GRANTED,请使用LOGON32_LOGON_NEW_CREDENTIALS类型和LOGON32_PROVIDER_WINNT50登录提供程序调用LogonUser().

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读