1

ここで説明されている 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 は?

4

0 に答える 0