2

win32security.LogonUser について知っています。私がやりたいのは、入力された資格情報をチェックして、ローカル Windows マシンのユーザーとパスワードが一致するかどうかを確認し、ネットワーク経由で Wi​​ndows マシンへのアクセスを許可できるようにすることです。アイデアは、デフォルトのWindows認証を持つparamikoで作成されたpythonic sshサーバーを持つことです。私がしたくないのは、新しい接続が確立されるたびにユーザーをログアウトするか、ユーザーが既にログインしているため認証プロセスが失敗することです。ログインを作成せずにWindowsでユーザーを確認する方法はありますかセッション?

4

1 に答える 1

3

LogonUser関数を誤って使用していたことがわかりました。そのユーザーの資格情報を使用してプロセスを実行するためのセキュリティ コンテキストが返され、不正なユーザー名またはパスワードが渡された場合に例外がスローされることを関数に渡すための列挙値が存在します。

つまり、これは、ユーザーがすでにログインしている場合や複数のセッションを実行している場合に例外をスローしないように、メソッドを呼び出す許容される方法です。これは、アプリケーションのニーズに合わせてオンザフライでユーザー資格情報を検証できる良い方法でもあります。

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()
于 2013-04-23T00:07:23.513 に答える