ログオン前にユーザーアカウントの存在を確認したい

[戻る]
お茶犬 2006/10/31(火) 13:53:36
みなさん、こんにちは。

Windowsにログオンする前にそのユーザーが実在するかどうかを調べるAPI関数が
あると聞いたのですが、ご存知の方教えてください。

具体的には
Ginaおよび「Windowsへログオン」画面をカスタマイズし、
カスタマイズした「Windowsへログオン」画面で入力された
ユーザー名、パスワード、ログオン先(ドメイン参加)
で実際にログオンする前に、
そのユーザー情報でログオン可能かどうかをチェックしたいのです。

環境は、
Wondows XP SP2、
VC++2005 
です。

よろしくお願いします。

お茶犬 2006/10/31(火) 19:16:12
[[解決]]
関数一発でわかるようなのがあると思っていたのですが、
どうやらそうはいかないことがわかりました。

考えてみます。

cona 2006/11/01(水) 15:25:58
NetUserGetInfoはつかえませんか?

お茶犬 2006/11/20(月) 22:06:25
conaさん、レスありがとうございます。
また気がつくのがかなり遅くなってすみません。

NetUserGetInfoは何らかの理由で使えなかった記憶があります。
(理由は忘れてしまいました。)

マイクロソフトの下記URLにサンプルプログラムが載っていましたので貼っておきます。
ttp://support.microsoft.com/default.aspx?scid=kb;ja;180548

しかし数回に一回の割合でログオンできないときがあり、ものすごーく悩んでいます。
上記URLサンプルプログラムの360行目から呼んだ場合のGenServerContext()の内部で、
_AcceptSecurityContext()からSEC_E_LOGON_DENIEDが返ってくるときがあります。
(ちなみに344行目のGenServerContext()は正常終了)
これがなぜなのか・・・


メイン関数SSPLogonUser()に渡すパラメタは固定にしてます。
SSPLogonUser()を呼ぶタイミングは『Windowsへログオン』画面を表示する直前です。
なので、サービスなどは立ち上がっている最中です。

k2 2006/11/21(火) 12:15:13
>Windowsにログオンする前にそのユーザーが実在するかどうかを調べるAPI関数が
>あると聞いたのですが、ご存知の方教えてください。

CredUIConfirmCredentialsという関数が名前的に怪しいですな。

古いスレッドには追加発言できません。