HSE_REQ_GET_CERT_INFO_EX Is Not Exposed in ISAPI ServerSupportFunction()

ID: Q221514


The information in this article applies to:


SYMPTOMS

In Microsoft Internet Information Server (IIS) 4.0, several new options have been added to the ServerSupportFunction. The ServerSupportFunction is a callback function that is supplied in the ECB (EXTENSION_CONTROL_BLOCK). It supports several auxiliary functions that are not covered by other explicit callback functions in the ECB. One of these new options is HSE_REQ_GET_CERT_INFO_EX, which returns a CERT_CONTEXT structure. This option is currently only exposed to ISAPI Extensions, so when writing an ISAPI Filter, this call may fail and may not return a CERT_CONTEXT structure as expected.


RESOLUTION

A supported fix that corrects this problem is now available from Microsoft, but it has not been fully regression tested and should be applied only to systems experiencing this specific problem. If you are not severely affected by this specific problem, Microsoft recommends that you wait for the next Windows NT 4.0 service pack that contains this fix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information on support costs, please go to the following address on the World Wide Web:

http://www.microsoft.com/support/supportnet/overview/overview.asp
The English version of this fix should have the following file attributes or later:

   Date      Time                 Size    File name     Platform
   -------------------------------------------------------------
   03-04-99  2:35:25              28,224  Admwprox.dll    i386
   03-04-99  2:35:25              328,512 Asp.dll         i386
   03-04-99  2:35:27              43,456  Coadmin.dll     i386
   03-04-99  2:35:27              11,186  Ftpctrs2.dll    i386
   03-04-99  2:35:27              81,376  Ftpsvc2.dll     i386
   03-04-99  2:35:28              55,392  Httpodbc.dll    i386
   03-04-99  2:35:28              10,224  Iisfecnv.dll    i386
   03-04-99  2:35:28              62,432  Iislog.dll      i386
   03-04-99  2:35:27              16,848  Infoadmn.dll    i386
   03-04-99  2:35:29              184,208 Infocomm.dll    i386
   03-04-99  2:35:30              9,584   Infoctrs.dll    i386
   03-04-99  2:35:30              47,936  Isatq.dll       i386
   03-04-99  2:35:30              29,520  Iscomlog.dll    i386
   03-04-99  2:35:30              11,248  Iwrps.dll       i386
   03-04-99  2:35:30              13,856  Lonsint.dll     i386
   03-04-99  2:35:31              71,232  Metadata.dll    i386
   03-04-99  2:35:31              7,488   Rpcref.dll      i386
   03-04-99  2:35:44              12,592  Spud.sys        i386
   03-04-99  2:35:31              18,032  Svcext.dll      i386
   03-04-99  2:35:31              14,752  W3ctrs.dll      i386
   03-04-99  2:35:32              227,424 W3svc.dll       i386
   03-04-99  2:35:33              87,504  Wam.dll         i386

   Date      Time                 Size    File name     Platform
   -------------------------------------------------------------
   03-04-99  2:35:44              50,448  Admwprox.dll    alpha
   03-04-99  2:35:44              549,136 Asp.dll         alpha
   03-04-99  2:35:45              77,072  Coadmin.dll     alpha
   03-04-99  2:35:46              17,168  Ftpctrs2.dll    alpha
   03-04-99  2:35:46              126,224 Ftpsvc2.dll     alpha
   03-04-99  2:35:47              89,360  Httpodbc.dll    alpha
   03-04-99  2:35:47              17,680  Iisfecnv.dll    alpha
   03-04-99  2:35:47              110,864 Iislog.dll      alpha
   03-04-99  2:35:48              25,872  Infoadmn.dll    alpha
   03-04-99  2:35:48              302,864 Infocomm.dll    alpha
   03-04-99  2:35:49              15,120  Infoctrs.dll    alpha
   03-04-99  2:35:50              82,704  Isatq.dll       alpha
   03-04-99  2:35:50              45,840  Iscomlog.dll    alpha
   03-04-99  2:35:50              16,656  Iwrps.dll       alpha
   03-04-99  2:35:50              23,312  Lonsint.dll     alpha
   03-04-99  2:35:51              131,856 Metadata.dll    alpha
   03-04-99  2:35:52              12,048  Rpcref.dll      alpha
   03-04-99  2:36:08              20,912  Spud.sys        alpha
   03-04-99  2:35:52              29,456  Svcext.dll      alpha
   03-04-99  2:35:52              21,264  W3ctrs.dll      alpha
   03-04-99  2:35:52              381,712 W3svc.dll       alpha
   03-04-99  2:35:53              149,264 Wam.dll         alpha
 

NOTE: If this product was already installed on your computer when you purchased it from the Original Equipment Manufacturer (OEM) and you need this fix, please call the Pay Per Incident number listed on the above Web site. If you contact Microsoft to obtain this fix, and if it is determined that you only require the fix you requested, no fee will be charged. However, if you request additional technical support, and if your no-charge technical support period has expired, or if you are not eligible for standard no-charge technical support, you may be charged a non-refundable fee.

For more information about eligibility for no-charge technical support, see the following article in the Microsoft Knowledge Base:
Q154871 Determining If You Are Eligible for No-Charge Technical Support


STATUS

Microsoft has confirmed this to be a problem in Windows NT 4.0.


MORE INFORMATION

The following code can be used to obtain a client certificate in the ISAPI Filter:


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)
   {
// Handle Error Here
   }
   // ccex now contains valid client certificate information. 

Additional query words: 4.00


Keywords          : kbbug4.00 kbfix4.00 
Version           : winnt:4.0
Platform          : winnt 
Issue type        : kbbug 

Last Reviewed: July 2, 1999