|
Updated: July 17, 1997
Microsoft is providing you with several options to help update your Internet Explorer for Windows 95 and Windows NT 4.0 users to Authenticode 2.0. We will be using two methods (manual and automated) to update users who hit Microsoft sites, and we want to make it easy for you to use either option on your site as well.
Manual option
Automated option
Note: Although we originally offered to let ICPs and ISVs host the actual download bits on their own sites, we felt it would be easier for all concerned if we hosted the bits on Microsoft servers instead. That way we can update users' machines without having to impact ICPs' and ISVs' servers.
This option updates users of Internet Explorer 3.0, 3.01, 3.02, and the Platform Preview of Internet Explorer 4.0 with a single ~400K download. (Internet Explorer 4.0 Preview 2 or final release users do not need the Authenticode 2.0 update, because it's included in the browser.)
User experience: The manual method requires the user to first respond "Yes" to a pop-up dialog box, then click the download link on an information page that appears, and then click on "auth2all.exe" on a download page that lists the various servers where the code is located. On Internet Explorer 3.x, the dialog box will stop appearing after the browser has been restarted. On Internet Explorer 4.0 Platform Preview, the dialog box will stop appearing after the user re-boots their machine.
The code: The sniffing script that identifies users who need to get the patch is provided below. You can place this script on any page you like, but we suggest you put it on pages where users go just prior to downloading new ActiveX controls or other signed code from your site.
The script will pop up a dialog box telling the user they should get the Authenticode update. If the user clicks the "Yes" button, they are taken to a Web page at Microsoft where they can get the update. This same page also includes international versions, as they become available.
The sniffing code detects versions of Internet Explorer 3.x and 4.0 Platform Preview. Use this code in an .ASP file, so it can get the value of HTTP_USER_AGENT and pass it to the client-side script.
<% set ua = Request.ServerVariables("HTTP_USER_AGENT") %> <HTML> <HEAD> <SCRIPT LANGUAGE="VBScript"> <!-- option explicit dim majorver dim ua dim ie3 dim ie4 dim aol dim minorver4 dim update dim winplat dim nav dim intButton set nav = navigator ua = "<%=ua%>" minorver4 = "" if len(ua) >=1 then 'nav object is supported winplat = mid(ua,instr(ua,"Windows") + 8, 2) majorver = mid(ua,instr(ua,"MSIE") + 5, 1) ie3 = majorver = 3 and (winplat = "NT" or winplat = "95" or winplat = "32") ie4 = majorver = 4 and (winplat = "NT" or winplat = "95" or winplat = "32") update = instr(ua,"Update a") aol = instr(ua,"AOL") if ie4 then minorver4 = mid(ua,instr(ua,"MSIE") + 7, 3) If (ie3 or minorver4 = "0b1") and update = 0 and aol = 0 then 'filter down to ie3 or ie40b1(PP1) then see if "update a" is true and not AOL 'display information back to the users intButton = msgbox ("Get Authenticode 2.0 now! This update provides valuable new features and renews key Authenticode certificates that help you safely download software from the Web. The update should take less than 5 minutes to download over a 28.8 Kbps modem. Do you want to visit our Authenticode Update page?", 4 + 64, "Download the Authenticode 2.0 Update Now!") If intButton = 6 then location.href="http://www.microsoft.com/windows/ie/security/authent2.asp" end if end if end if --> </SCRIPT> ...
This option requires less work by the user to get the update (one click to get the update, and another to either restart their computer or go back to the Web page they were previously viewing). The automated option also provides better detection of Authenticode 2.0 on users' systems than the manual option.
User experience: After coming to a page with this implementation, users are presented an Authenticode Certificate dialog, on which they need to click "Yes," just as when they download new ActiveX controls. Users who have previously agreed to accept all code from Microsoft won't even get this first dialog, and the installation will be completely automatic, without any user interaction required.
After the user clicks "Yes," a small executable will run that will determine the version of the patch the user needs, including international versions. It will then automatically download the appropriate update to the user's computer from a randomly selected server. At this time, the user will see another pop-up dialog, which tells them that they are currently downloading the Authenticode 2.0 patch, and that it should take about 5 minutes over a 28.8 modem.
If the randomly selected server is unavailable, the user will be asked to choose the Authenticode 2.0 patch from a list of available servers.
Once the update has been downloaded and installed (with no further user interaction required), a third dialog pop-up will inform users that they have successfully installed the update and that they need to restart their computer to enable Authenticode 2.0. If users select not to restart, they will return to the page they started from.
Internet Explorer 4.0 notes: If the user is running Internet Explorer 4.0 Platform Preview (the earlier release of Internet Explorer 4.0), they will receive a dialog box pointing to the Authenticode 2.0 patch page for the download. If the user is running Internet Explorer 4.0 Preview 2 or the final release, there will be no need to download the patch (it's already part of the browser).
The code: The sniffing script that identifies users who need to get the patch is provided below. You can place this script on any page you like, but we suggest you put it on pages where users go just prior to downloading new ActiveX controls or other signed code from your site. Note that nothing is needed in the body for the script to work.
<HTML> <HEAD> <SCRIPT LANGUAGE="VBScript"> <!-- 'Auto-install for Internet Explorer 3.0 to 3.02 -- Iframe that calls ocx 'Manual-install for Internet Explorer 4.0 PP1 -- dialog box option explicit dim majorver dim ua dim ie3 dim ie4 dim aol dim minorver4 dim update dim winplat dim win32 dim nav dim intButton ua = navigator.useragent minorver4 = "" intButton = 0 if len(ua) >=1 then 'nav object is supported winplat = mid(ua,instr(ua,"Windows") + 8, 2) win32 = mid(ua,instr(ua,"Win") + 3, 2) 'some user agent strings display the platform is referred to as Win32 majorver = mid(ua,instr(ua,"MSIE") + 5, 1) ie3 = majorver = 3 and (winplat = "NT" or winplat = "95" or win32 = "32") ie4 = majorver = 4 and (winplat = "NT" or winplat = "95" or win32 = "32") update = instr(ua,"Update a") aol = instr(ua,"AOL") if ie4 then minorver4 = mid(ua,instr(ua,"MSIE") + 7, 3) if minorver4 = "0b1" and update = 0 and aol = 0 then intButton = msgbox ("Get Authenticode 2.0 now! This update provides valuable new features and renews key Authenticode certificates that help you safely download software from the Web. The update should take less than 5 minutes to download over a 28.8 Kbps modem. Do you want to visit our Authenticode Update page?", 4 + 64, "Download the Authenticode 2.0 Update Now!") If intButton = 6 then location.href="http://www.microsoft.com/windows/ie/security/authent2.asp" end if end if If ie3 and update = 0 and aol = 0 then 'filter down to ie3 or ie40b1(PP1) then see if "update a" is true and not AOL 'In the next line after SRC set the path to that of your server or virtual root document.write"<IFRAME ID='auth2' SRC='auth2_object.htm' WIDTH=1 HEIGHT=1 BORDER=0 FRAMEBORDER=0 FRAMESPACING=0 HSPACE=0 VSPACE=0 NORESIZE SCROLLING=NO></IFRAME>" end if end if --> </SCRIPT> ...
Here is the listing for the auth2_object.htm file, which loads the control referenced in the IFRAME tag above:
<HTML> <HEAD> <META NAME="keywords" CONTENT="Authenticode" /> <META NAME="description" CONTENT="Options for updating Internet Explorer for Windows 95 and Windows NT 4.0 users to Authenticode 2.0" /> <META NAME="MS.LOCALE" CONTENT="EN-US" /> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1" /> <META NAME="ROBOTS" CONTENT="NOINDEX"> <SCRIPT LANGUAGE="VBScript"> <!-- option explicit sub window_onload on error resume next goget end sub sub goget() GoGetFiles.GoGetFiles() end sub --> </SCRIPT> </HEAD> <BODY> ... <!-- AUTHENTICODE 2.0 OBJECT --> <OBJECT id="GoGetFiles"WIDTH=0 HEIGHT=0 CLASSID="clsid:D900B243-EE45-11d0-BC4B-00AA00A48647" CODEBASE="http://activex.microsoft.com/controls/msdnld/msdnld.cab" > </OBJECT> </BODY> </HTML>
Back to the ActiveX SDK home page