Symptomen
Neem het volgende scenario:
-
De functieservice Webinschrijving van Certificate Services is geïnstalleerd op een server op basis van Windows Server 2008 R2.
-
U hebt een clientcomputer waarop Internet Explorer 10 of een latere versie wordt uitgevoerd.
-
U probeert toegang te krijgen tot de pagina Certificate Services-webinschrijving die wordt gehost op de Windows Server server op basis van 2008 R2.
In dit scenario wordt de volgende fout ontvangen in Internet Explorer:
Deze webbrowser biedt geen ondersteuning voor het genereren van certificaataanvragen
Oorzaak
De controle van de browserversie identificeert de Internet Explorer-versie ten onrechte als 'IE 1'.
Tijdelijke oplossing
Ondersteunde tijdelijke oplossingen voor dit probleem zijn als volgt:
-
Compatibiliteitsweergave configureren in Internet Explorer.
-
Verplaats de functionaliteit van de pagina Webinschrijving naar Windows Server 2012.
-
Wijzig het bestand Certsbrt.inc door regel 44 tot en met 70 te vervangen door de volgende inhoud. Certsbrt.inc bevindt zich in de volgende map:
%WINDIR%\system32\certsrv\en-us
'' If there is no '.' in the UserAgent string, this will return the next character if any' as the version number. ' We extract the string until a '.' and then convert it' into integer. If -1 is returned from this function then it isn't MSIE 'Function GetInternetExplorerVersionNumber(sHttpUserAgent) Dim nMSIEGetInternetExplorerVersionNumber = -1 nMSIE = InStr(sHttpUserAgent, "MSIE") If 0 <> nMSIE Then numChar = InStr(Mid(sHttpUserAgent, nMSIE + 5), ".") - 1 If -1 = numChar Then ' no '.' in the string numChar = 1 End If If nMSIE + 5 + numChar - 1 <= Len(sHttpUserAgent) Then GetInternetExplorerVersionNumber = CInt(Mid(sHttpUserAgent, nMSIE + 5, numChar)) End If End IfEnd Function'' We define a Old MSIE based browser' if it has the string MSIE that is followed by a version number that is less than 4' NOTE:' IsOldMSIE = False does not imply MSIE >= 4.'' i.e. Not IsOldMSIE("abc") = True' Not IsOldMSIE("MSIE") = True'Function IsOldMSIE(sHttpUserAgent) Dim nMSIE Dim sMSIEVersion IsOldMSIE = False nMSIE = InStr(sHttpUserAgent, "MSIE") If nMSIE <> 0 AND (nMSIE+5 < Len(sHttpUserAgent)) Then nVersion = GetInternetExplorerVersionNumber(sHttpUserAgent) If -1 <> nVersion Then IsOldMSIE = nVersion < NEW_MSIE_VERSION End If End IfEnd Function
Meer informatie
Regels 44 tot en met 70 in het ongewijzigde bestand Certsbrt.inc op de Windows Server server op basis van 2008 R2 zijn als volgt. Dit zijn de regels die moeten worden vervangen.
'' We define a Old MSIE based browser' if it has the string MSIE that is followed by a version number that is less than 4' NOTE:' IsOldMSIE = False does not imply MSIE >= 4.'' i.e. Not IsOldMSIE("abc") = True' Not IsOldMSIE("MSIE") = True'Function IsOldMSIE(sHttpUserAgent) Dim nMSIE Dim sMSIEVersion nMSIE = InStr(sHttpUserAgent, "MSIE") If nMSIE=0 Then IsOldMSIE = False ElseIf nMSIE+5 < Len(sHttpUserAgent) Then sMSIEVersion = Mid(sHttpUserAgent, nMSIE+5, 1) IsOldMSIE = CInt(sMSIEVersion) < NEW_MSIE_VERSION Else IsOldMSIE = False End IfEnd Function