[IIS] HSE_REQ_GET_CERT_INFO_EX が ISAPI ServerSupportFunction に公開されていない

この記事は、以前は次の ID で公開されていました: JP221514
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
IIS (Internet Information Server) 4.0 では、いくつかの新しいオプションが ServerSupportFunction に追加されています。ServerSupportFunction は、ECB (EXTENSION_CONTROL_BLOCK) で提供されているコールバック関数です。これは、ECB の他の明示的なコールバック関数が対応していない、いくつかの補助関数をサポートします。これらの新しいオプションの 1 つに HSE_REQ_GET_CERT_INFO_EX があり、これは CERT_CONTEXT 構造体を返すものです。このオプションは、現在のところ ISAPI 拡張のみに公開されているため、ISAPI フィルタを作成すると、この呼び出しは失敗し、期待通りに CERT_CONTEXT 構造体が返らない場合があります。
解決方法

Windows NT Server または Workstation 4.0

この問題を解決するには、Windows NT 4.0 の最新の Service Pack、あるいは個別修正プログラムを入手します。最新の Service Pack の入手方法については、次の Web ページを参照してください。

Windows NT Server 4.0、Terminal Server Edition

この問題を解決するには、Windows NT Server 4.0, Terminal Server Edition の最新の Service Pack を入手します。関連情報については、次の「サポート技術情報」 (Microsoft Knowledge Base) の資料を参照してください。
152734 How to Obtain the Latest Windows NT 4.0 Service Pack

状況
マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。この問題は、Windows NT Server version 4.0 Service Pack 6a、Terminal Server Edition Service Pack 6 で修正済みです。
詳細
次のコードを使用すると、ISAPI フィルタでクライアント証明書を入手することができます。
char CertificateBuf[8192];CERT_CONTEXT_EX ccex;ccex.cbAllocated = sizeof(CertificateBuf);ccex.CertContext.pbCertEncoded = (BYTE*)CertificateBuf;DWORD dwSize = sizeof(ccex);   if (pfc->ServerSupportFunction(pfc, (enum SF_REQ_TYPE)HSE_REQ_GET_CERT_INFO_EX, (LPVOID)&ccex, dwSize,NULL) == FALSE)   {// ここでエラー処理を行う   }   // これで ccex には有効なクライアント証明書情報が含まれる。
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 221514 (最終更新日 2001-06-13) をもとに作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

4.00
プロパティ

文書番号:221514 - 最終更新日: 02/04/2014 09:51:20 - リビジョン: 1.0

Microsoft Windows NT Server 4.0 Terminal Server, Microsoft Internet Information Server 4.0

  • kbnosurvey kbarchive kbbug kbfix kbwinnt4sp6fix KB221514
フィードバック
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)