1

LogonUser 関数 ( http://msdn.microsoft.com/en-us/library/aa378184(VS.85).aspx ) を使用してユーザーを認証しています。ただし、ユーザーがパスワードを変更すると (つまり、Password1 から Password2 に)、両方のパスワードが機能することがわかりました。ただし、現在のパスワードのみを使用できるようにしたいと思います。これをそのように機能させるために設定する必要があるものはありますか?

次のコード スニペットを使用しています。

LogonUser(nt_id, NULL, nt_password, LOGON32_LOGON_NETWORK, 3, &hToken );

nt_id は USER@USERDOMAIN.SOMETHING.COM の形式で入力されます

の代わりに 3 がありLOGON32_PROVIDER_WINNT50ます。宣言されていない識別子 を示すコンパイル エラーが発生するためですLOGON32_PROVIDER_WINNT50(これは症状でしょうか?) が、3 として定義されていることはわかっています。

ありがとう -ピート

4

2 に答える 2

1

あなたがしていないので、コンパイル時エラーはおそらくそこにあります

#define _WIN32_WINNT 0x0500

windows.h をインクルードする前、またはコンパイル時の設定 (-D_WIN32_WINNT=0x0500) として追加しました。

ただし、LogonUser が新しいパスワードと古いパスワードの両方で機能する理由はわかりません。ただし、MSDN に従って (なりすましではなく) ユーザーを認証する必要があるため、SSPI APIを使用する方が適切です(推奨される方法は次のとおりです)。

于 2009-06-22T21:42:53.193 に答える