从输出HTML中检测ASP.NET版本?

时间:2010-02-02 00:51:22

标签: asp.net

好的,这可能是一件微不足道的事情 - 因此琐事标签! - 但有没有人知道最终输出的任何差异会泄露使用的运行时版本?

换句话说,如果您访问一个网站,并且您知道它是通过ASP.NET生成的,那么是否有关于标记的任何明确信息可以判断该网站是针对2.0还是3.5运行?

4 个答案:

答案 0 :(得分:1)

没有任何保证输出可以指示您正在寻找的内容。

尤其如此,因为您可以创建将输出任何内容的HTTP处理程序。

答案 1 :(得分:1)

没有。 HTTP标头可由管理员配置,因此它们不可靠。比如stackoverflow.com说:

Server: Microsoft-IIS/7.5

MSN.com说:

X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727

和37signals.com说:

X-Powered-By: PHP/5.3.0

任何人都可以制作任何由ASP.Net 3.5提供支持的php网站,或声称这是一个perl脚本,而实际上是一个ASP网站。在他们的一天结束时,HTTP只是文本,所有标题都可以由知识渊博的人配置,从信任的角度来看,它们几乎没有任何意义。

答案 2 :(得分:0)

没有ASP.NET 3.5这样的东西。只有2.0(很快,4.0)。

请记住,.NET 3.5只是某些.NET 2.0 Service Pack之上的一些额外程序集。没有新的CLR,因此没有新的ASP.NET版本。

答案 3 :(得分:0)

ASP.NET 2.0网站可能正在运行v2.0或v3.5框架 ASP.NET 4.0网站可能正在运行v4.0或v4.5框架

有几种方法可以检查您运行的确切版本,在您的网页上添加:

<%= System.Environment.Version.ToString() %>

作为一个例子;

  • 如果你安装了v4.0,你会看到v4.0.30319.1008
  • 如果你安装了v4.5,你会看到v4.0.30319.34209 这将获得当前运行的版本。您可以在以下位置检查所有已安装版本的注册表:
  

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full

在此位置查看Version节点。

  • 如果你安装了v4.0,你会看到v4.0.30319
  • 如果你安装了v4.5,你会看到v4.5.51209