python - 有没有办法用python的win32security验证用户权限

标签 python windows security ssh pywin32

我了解 win32security.LogonUser。我想要做的是检查输入的凭据,以了解它们是否与本地 Windows 计算机上的用户和密码匹配,以便我可以授予他们通过网络访问 Windows 计算机的权限。这个想法是使用 paramiko 制作一个具有默认 Windows 身份验证的 pythonic ssh 服务器。我不想做的是每次建立新连接时都将用户注销,或者由于用户已经登录而导致身份验证过程失败。有没有一种方法可以在 Windows 上验证用户而无需创建登录名 session ?

最佳答案

事实证明,我只是错误地使用了 LogonUser 函数。确实存在一个枚举值来传递函数,告诉它您想要一个安全上下文来使用该用户的凭据执行进程,并且如果传入错误的用户名或密码,则会抛出异常。

换句话说,这是调用该方法的可接受方式,这样,如果用户已经登录或有多个 session 正在运行,它就不会引发异常。这也是一种能够根据任何应用程序的需求动态验证用户凭据的好方法:

try:
    hUser = win32security.LogonUser(username,
                                    domain,
                                    password,
                                    win32security.LOGON32_LOGON_INTERACTIVE,
                                    win32security.LOGON32_PROVIDER_DEFAULT) 
except win32security.error:
    print "Failed"
    import traceback
    traceback.print_exc()

关于python - 有没有办法用python的win32security验证用户权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16158725/

相关文章:

python - OpenCV中这个 'inverse map'函数有什么不准确之处?

.net - 非 COM、非 .NET DLL 的正确名称?

php - 这种ajax行为是否正常,安全方面

c++ - Windows 安全中心 API

python - Python-randint()返回空范围,崩溃错误

python - 如何在 Pygame 中滚动我的背景图像?

python - 在不使用 Django 本身的情况下测试自定义 Django 中间件

java - 在 Java 中最大化 JFrame

Ruby 2.0.0p0 IRB 警告 : "DL is deprecated, please use Fiddle"

ruby-on-rails - 在数据库中存储密码