ここで説明されている WinHTTP 認証:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa383144(v=vs.85).aspx
"Transfer-Encoding: Chunked\r\n"
を呼び出すときにヘッダーを使用しない場合に機能しますWinHttpSendRequest()
。で資格情報を設定し、でリクエストを再送信したWinHttpReceiveResponse()
後に失敗するため、ログオンできません。どうしてもチャンク転送が必要なのですが、Windows認証と併用することはできますか?WinHttpSetCredentials()
WinHttpSendRequest()
チャンクエンコーディングを使用した場合の監査失敗のログは次のとおりです。
SubjectUserSid S-1-5-18
SubjectUserName MY-PC-NAME$
SubjectDomainName WORKGROUP
SubjectLogonId 0x3e7
TargetUserSid S-1-0-0
TargetUserName Administrator
TargetDomainName MY-PC-NAME
Status 0xc000006d
FailureReason %%2313
SubStatus 0xc000006a
LogonType 2
LogonProcessName User32
AuthenticationPackageName Negotiate
WorkstationName MY-PC-NAME
TransmittedServices -
LmPackageName -
KeyLength 0
ProcessId 0x1d8
ProcessName C:\Windows\System32\winlogon.exe
IpAddress 127.0.0.1
IpPort 0
そして、チャンクエンコーディングなしで成功した監査は次のとおりです。
SubjectUserSid S-1-0-0
SubjectUserName -
SubjectDomainName -
SubjectLogonId 0x0
TargetUserSid S-1-5-21-4112068699-3954607238-3758397191-1005
TargetUserName moose
TargetDomainName MY-PC-NAME
TargetLogonId 0x137576fb8
LogonType 3
LogonProcessName NtLmSsp
AuthenticationPackageName NTLM
WorkstationName M_10
LogonGuid {00000000-0000-0000-0000-000000000000}
TransmittedServices -
LmPackageName NTLM V2
KeyLength 128
ProcessId 0x0
ProcessName -
IpAddress 167.109.28.37
IpPort 56695
ご覧のとおり、ドメイン、ユーザー名、IP、ポート、ログオン タイプ、TargetUserSid など、多くの点が異なっています"Transfer-Encoding: Chunked\r\n"
。
編集:
簡単にするために、質問は次のとおりです。
success = WinHttpSetCredentials( hPostRequest, target, authScheme, IIS_USER_NAME, IIS_PWD, NULL );
success = WinHttpSendRequest( hPostRequest,
L"Transfer-Encoding: Chunked\r\n",
(DWORD)-1,
WINHTTP_NO_REQUEST_DATA,
0,
WINHTTP_IGNORE_REQUEST_TOTAL_LENGTH,
0 );
戻り値が成功した後、次に呼び出す WinHttp API は?