- 热门文章:
- · ASP中使用ServerVariables集合详解(3)
- · ASP中使用ServerVariables集合详解(4)
- · ASP中使用Form和QueryString集合(1)
- · ASP中使用Form和QueryString集合(2)
- · ASP中使用Form和QueryString集合(3)
- · ASP中使用Form和QueryString集合(4)
- · ASP内置对象Request和Response详解(1)
- · ASP内置对象Request和Response详解(2)
- · ASP内置对象Request和Response详解(3)
- · 20种看ASP程序源码的方法及工具
- · 防范ASP木马的十大基本原则
- · Web服务器上防范基于ASP程序的木马(2)
上一篇:ASP中使用ServerVariables集合详解(1) >>
ASP中使用ServerVariables集合详解(2)
ServerVariables集合中,另外一个有用的值是用户浏览器的用户代理字符串。在“Detecting the Browser Type”页面(browsertype.asp),使用ServerVariables集合中的“HTTP_USER_AGENT”值来获得用户代理字符串,一些脚本用来解析该信息并寻找生产厂家名称和浏览器版本。
<%
strUA = Request.ServerVariables(“HTTP_USER_AGENT”)
Response.Write “The User Agent string is <B>” & strUA & “</B>
”
If InStr(strUA, “MSIE”) Then
Response.Write “To upgrade your browser go to “_
& “<A HREF=” & Chr(34) & http://www.microsoft.com/ie/”_
& Chr(34) & “>http://www.microsoft.com/ie/<A>
”
intVersion = Cint(Mid(strUA, InStr(strUA, “MSIE”) + 5, 1))
If intVersion >=4 Then
Response.Write “You can use Microsoft Dynamic HTML”
End If
Else
If InStr(strUA, “Mozilla”) Then
If InStr(strUA, “compatible;”) = 0 Then
Response.Write “Your browser is probably Navigator. You can “_
& “download the latest version of Navigator from “_
& “<A HREF=” & Chr(34) & http://home.netscape.com/”_
& “download/”& Chr(34) & “>http://home.netscape.com”_
& “/download/</A>
”
intVersion = Cint(Mid(strUA, InStr(strUA, “/”) +1, 1))
If intVersion >= 4 Then
Response.Write “You can probably use Netscape Dynamic HTML”
End If
Else
strVersion = Mid(strUA, InStr(strUA, “compatible;”) + 12)
strProduct = Left(strVersion, InStr(strVersion, “ “))
Response.Write “Your browser is Navigator-compatible. You can”_
& “search for the manufacturer using a search engine, such as”_
& “<A HREF=” & Chr(34) _
& “http://www.altavista.digital.com/CGI-bin/query?q=”_
& strProduct _
& Chr(34) & “>http://www.altavista.com/</A>
”
End If
End If
End If
%>
对IE 5.0和Navigator 4.61的搜索结果分别不同,对于其他厂家的浏览器,可以得到一个链接在Alta Vista Web站点自动开始搜索厂家的名称。
注意,Netscape在用户代理字符串中不提供厂家的名称,因而无法绝对保证一个浏览器一定是Navigator。
检测浏览器的语言
ServerVariables集合中另外一个有用的值是“HTTP_ACCEPT_LANGUAGE”,它包含了一个当浏览器安装时指定的,或硬编码进用户的地区版本的语言代码。语言代码的例子有en-us(英国、美国)、de-at(德国、澳大利亚)和es-pe(西班牙、秘鲁)。
语言代码可以是一般的且省略方言标识:例如,在我们的站点Wrox者,大批浏览者都是将en(英语)作为语言代码。
因此,可以检测语言代码并自动装载一个合适的特定地区或指定语言版本的页面。
StrLocale = Lcase(Left(Request.ServerVariables(“HTTP_ACCEPT_LANGUAGE”),2))
Select Case strLocale
Case “en”: Response.Redirect “http://uk_site.co.uk/”
Case “de”: Response.Redirect “http://de_site.co.de/”
Case “fr”: Response.Redirect “http://fr_site.co.fr/”
‘... etc
Case Else: Response.Redirect “http://us_sitel.com/”
End Select
或者根据特定的方言,重定向页面:
strLocale = Lcase(Request.ServerVariables(“HTTP_ACCEPT_LANGUAGE”))
Select Case strLocale
Case “en-gb”: Response.Redirect “http://uk_site.co.uk/”
Case “en-us”: Response.Redirect “http://us_site.com/”
Case “es-pe”: Response.Redirect “http://es_site2.co.pe/”
‘...
Case Else: Response.Redirect “http://us_site1.com/”
End Select
其他有用的ServerVariables集合的值
可以访问和使用ServerVariables集合中的任何一成员,控制ASP页面响应一个请求的方式。可以检查一个浏览者访问站点时使用的是否是缺省端口80或还是另一个。在这个例子里,寻找通过端口443的访问——这个端口提供的是安全套接字层(Secure Socket Layer,SSI)访问(和其他的协议),且将它们重定向到一个相应的页面。
If Request.ServerVariables(“SERVER_PORT”) = “443”) Then
Response.Redirect “/securesite/default.asp” ‘Secure user
Else
Response.Redirect “/normalsite/default.asp” ‘Non-secure user
End If
假如要求浏览者注册且由服务器验证(而不是允许他们在Web服务器的IUSER帐号下匿名访问,这个问题将在后面章节中详细讨论),可以查询用户名称,来判定正在与我们打交道的用户是谁,是否装载页面给该用户。例如,下面的这个代码将只向名为Administrator的用户显示管理链接。
...
<A HREF=”dispcnfg.asp”>Change Display Configuration</A>
<A HREF=”dispcolr.asp”>Change Display Colors</A>
<A HREF=”keyboard.asp”>Change Keyboard Configuration</A>
<%
If Request.ServerVariables(“AUTH_USER”) _
= Ucase(Request.ServerVariables(“SERVER_NAME”)) & “\Administrator” Then
%>
<A HREF=”allusers.asp”>Administer All Users</A>
<A HREF=”usrlogon.asp”>Administer Logon Information</A>
<%
End If
%>
...
注意ASP不填写ServerVariables集合直到你访问其中的一个成员。首次访问该集合的一个成员将使IIS得到它的全部,应只在需要时才使用ServerVariables集合。
下一篇:ASP中使用ServerVariables集合详解(3) >>
相关文章:
- · 利用ASP木马程序获取管理权限(1)
- · IIS服务器排错指南及错误代码大全
- · IIS服务器排错指南及错误代码大全(2)
- · IIS服务器排错指南及错误代码大全(3)
- · 用ISAPIfilter使INC、ASA文件安全
- · IIS HTTP500内部错误解决办法(2)
- · IIS HTTP500内部错误解决办法(3)
- · ASP实用技巧:强制刷新和判断文件地址
- · ASP木马Webshell安全解决办案
- · 由神秘到简单 教你在网页中添加微软地图(1)
- · 由神秘到简单 教你在网页中添加微软地图(2)
- · 在Apache上调试ASP.NET 1.1/2.0代码
- · ASP.NET入门随想之多态、接口与委托(1)
- · ASP.NET入门随想之多态、接口与委托(2)
- · ASP.NET 2.0运行时简要分析(1)
- · ASP.NET 2.0运行时简要分析(2)
- · 由神秘到简单 教你在网页中添加微软地图(3)
- · 由神秘到简单 教你在网页中添加微软地图(4)
- · 由神秘到简单 教你在网页中添加微软地图(5)
- · 由神秘到简单 教你在网页中添加微软地图(6)
- · 由神秘到简单 教你在网页中添加微软地图(7)
- · ASP程序中提供在线文章翻译功能
- · ASP编程经典例子(1)
- · ASP编程经典例子(2)
- · 在ASP应用程序中限制重复提交同一表单
- · 在ASP应用程序中加入智能搜索
- · ASP连接11种数据库语法总结(1)
- · ASP连接11种数据库语法总结(4)
- · ASP连接11种数据库语法总结(5)
- · 无限级分类
- · 读取数据库中数据到数组的类
- · 网址和邮件地址的转换函数
- · ASP编码优化(1)
- · ASP编码优化(2)
- · 在ASP网站设计中表单验证
- · 动网论坛代码分析
- · asp中对ip进行过滤限制函数
- · 不用Golobal和session实现在线人数统计
