LogonUserを呼び出して、資格情報のセットを検証しようとしています。
LogonUser("forest", "avatopia.com" "stapler",
LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_WINNT50, out token);
また、アカウントが無効になっている場合でもtrueを返します。
また、 SSPI を直接使用して資格情報を検証しようとしましたが、これには次の呼び出しが含まれます。
AcquireCredentialsHandle(..., "Negotiate", SECPKG_CRED_OUTBOUND, ..., ["forest", "stapler", "avatopia.com"], ...)
InitializeSecurityContext(...)
AcquireCredentialsHandle(..., "Negotiate", SECPKG_CRED_INBOUND, ...)
AcceptSecurityContext(...)
InitializeSecurityContext(...)
AcceptSecurityContext(...)
AcquireCredentialsHandle
ほとんどのマシンでは、ユーザー アカウントが無効になっている場合、への最初の呼び出しは失敗します。しかし、私がテストしているこの特定のマシンでは、サイクル全体が完了し、機能します。
無効なパスワードで試してみると、LogonUser
(正しく)失敗します:
LogonUser("forest", "avatopia.com" "adf342sdf3",
LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_WINNT50, out token);
falseを返し、 (ログオン失敗: 不明なユーザー名またはパスワード)をGetLastError
返します。1326
無効なパスワードで SSPI を試行しても (正しく) 失敗します。
AcquireCredentialsHandle(..., "Negotiate", SECPKG_CRED_OUTBOUND, ..., ["forest", "adf342sdf3", "avatopia.com"], ...)
InitializeSecurityContext(...)
AcquireCredentialsHandle(..., "Negotiate", SECPKG_CRED_INBOUND, ...)
AcceptSecurityContext(...)
で失敗します8009030C
(ログオン試行に失敗しました)
悪化しているのは、この動作が1台のマシンでのみ発生していることです。
LogonUser
および Security Support Provider Interface 全体が、特定のドメインに参加しているマシンで無効になっているアカウントの資格情報が有効であることを示すのはなぜですか?
- (誤って) 成功するドメイン参加マシン
LogonUser
: Windows XP SP2 LogonUser
(正しく) 失敗するドメイン参加マシン: Windows XP SP2
アップデート:
というローカル ユーザーはありませんForest
:
という名前のローカル ユーザーもいませんForest
。
私が求めているのはavatopia.com\Forest
ではなくであるため、これは無関係ですspeeder\Forest
。
oi vayアクセスを許可されるべきではないものに、障害のあるユーザーがアクセスを許可されたという理由だけで、人々はパンティを束ねます。