使用Javascript在Windows XP和IE下检测.NET 4.0

使用Javascript在Windows XP和IE下检测.NET 4.0,.net,internet-explorer,windows-xp,.net,Internet Explorer,Windows Xp,我有一个网页,需要检测用户的计算机上是否安装了.NET。我并不特别关心安装的.NET版本。检测是通过Javascript完成的。各种谷歌搜索指向在用户代理字符串中查找.NET CLR。这适用于几乎所有OS/IE/.NET组合。今天我发现了一个不适用的 在Windows XP SP3、IE 8和.NET 4.0下,我为用户代理获得以下信息: User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NE

我有一个网页,需要检测用户的计算机上是否安装了.NET。我并不特别关心安装的.NET版本。检测是通过Javascript完成的。各种谷歌搜索指向在用户代理字符串中查找.NET CLR。这适用于几乎所有OS/IE/.NET组合。今天我发现了一个不适用的

在Windows XP SP3、IE 8和.NET 4.0下,我为用户代理获得以下信息:

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E)
在我简单地添加一个类似.NET4.0的检查之前,我想确认这是我应该为上面的browser/OS/.NET组合获得的正确的用户代理字符串。用户代理字符串看起来正确吗?在考虑其他Windows OS/IE/.NET组合时,我应该寻找任何其他.NET标识符吗


谢谢。

NET CLR确实是您应该寻找的。您也可以在代码中的任何地方通过javascript进行检查,方法如下:

 if ((navigator.userAgent.indexOf(".NET CLR")>-1)) 
  alert ("CLR available " +navigator.userAgent);
 else
  alert(".NET SDK/Runtime is not available for us from within " + <BR>           "your web browser or your web browser is not supported." + <BR>           " Please check with http://msdn.microsoft.com/net/ for " + <BR>           "appropriate .NET runtime for your machine.");
如图所示:
小心,用户代理是可以修改的。即使是普通用户也不太可能

你知道你不能依赖用户代理字符串,对吗?最终用户可以将其更改为说出他们想要的任何内容。如果你不介意的话,那就继续吧。问题是为什么我在XP/IE8/.NET 4.0组合的用户代理字符串中没有看到.NET CLR?我在.NET上遗漏了什么吗?下面是添加/删除程序中显示的内容:MS.NET Framework 4客户端配置文件,MS.NET Framework 4扩展。