前往顾页
以后地位: 主页 > 收集编程 > Asp实例教程 >

asp Request 工具 用户手册

时候:2010-05-15 00:07来源:知行网www.zhixing123.cn 编辑:麦田守望者

Request 工具在 HTTP 请求期间,检索客户端浏览器通报给办事器的值 。

语法
Request[.collection|property|method](variable)

调集

ClientCertificate
ClientCertificate 调集从 Web 浏览器公布请求中获得考证字段(由 X.509 标准指定)。


如果 Web 浏览器利用 SSL3.0/PCT1 和谈(也就是说,它利用以 https:// 开首的 URL,而不是 http://)连接办事器及办事器请求考证,则浏览器将发送考证字段。

如果没有发送考证,ClientCertificate 调集将前往 EMPTY。

必须先将 Web 办事器建设为请求客户端考证,然后才气利用 ClientCertificate 调集。

语法
Request.ClientCertificate( Key[SubField] )

参数
Key
指定要获得的考证字段称呼。客户端考证包含以下字段。值 意义
Certificate 按 ASN.1 格局的二进制流字符串,此中包含完整的考证内容。
Flags 一组标记,供应其他客户端考证信息。可以设置下面的标记:
ceCertPresent - 以后的客户端考证。

ceUnrecognizedIssuer - 该链下去自未知的公布者的最后一个考证。

重视 要利用以上标记,必须在 ASP 页中包含客户端考证包含文件。若您正在利用 VBScript,则应包含 cervbs.inc。这些文件装置在 \Inetpub\ASPSamp\Samples 目次下。

Issuer 包含子字段值的列表的字符串,此列表包含考证公布者的信息。若该值在无 SubField 项的环境下指定,则 ClientCertificate 调集前往一个以逗号分开的子字段列表。比方,C=US, O=Verisign 等。
SerialNumber 包含考证的序列号的字符串,序列号以连字符 (-) 分开的 16 进制 ASCII 码表示。比方,04-67-F3-02。
Subject 包含子字段值的列表的字符串,此列表包含有关考证的主题信息。若该值在无 SubField 项的环境下指定,则 ClientCertificate 调集前往一个以逗号分开的子字段列表。比方,C=US, O=Verisign 等。
ValidFrom 指定考证甚么时候有效。这天期遵守 VBScript 格局并随国度(地区)设置而转变。比方,在美国可表示为 9/26/96 11:59:59 PM.
ValidUntil 指定考证甚么时候到期。



SubField
可选参数,用于按 Subject 或 Issuer 关头字检索伶仃的字段。此参数作为一个后缀增加到 Key 参数中。比方,IssuerO 或 SubjectCN。下表列出了一些通用的 SubField 值。值 意义
C 指定原国度(地区)名。
CN 指定公用用户名。(此子字段仅同 Subject 关头字一路利用。)
GN 指定给定的称呼。
I 指定一组首字母。
L 指定地点地。
O 指定公司或构造称呼。
OU 指定机构的称呼。
S 指定州或省。
T 指定此人或构造的头衔。


与在上述列表中所列的值不合,SubField 的值可被 ASN.1 标识所辨认。ASN.1 标识的格局是一通同过句点 (.) 分开的一系列数。比方: 3.56.7886.34。

注释
可以经由过程关头字用循环来遍历 ClientCertificate 调集。下面的例子对此进行演示。

<%
For Each key in Request.ClientCertificate
Response.Write( key & ": " & Request.ClientCertificate(key) & "<BR>")
Next
%>

示例
下面的示例利用 Subject 关头字测试客户端考证是不是存在。

<%
If Len(Request.ClientCertificate("Subject")) = 0
Response.Write("No client certificate was presented")
End if
%>

下面的示例获得公布客户端考证的公司的公用名。

<%= Request.ClientCertificate("IssuerCN") %>

下面的示例查抄客户端考证主题的构造名。

<%
If (Request.ClientCertificate("Subject")="Msft")
Response.Write("Good Choice!")
End if
%>

下面的示例显现客户端考证甚么时候到期。

This certification will expire on
<%= Request.ClientCertificate("ValidUntil") %>

下面的示例利用 Flags 关头字测试客户端考证的公布者是不是是已知的。第一行的 include 号令使脚本可利用已定名标记 ceUnrecognizedIssuer。

<!--#include file="cervbs.inc" -->
<%
If Request.ClientCertificate("Flags") and ceUnrecognizedIssuer then
Response.Write "Unrecognized issuer"
End If
%>
 

Cookies
Cookies 调集许可用户检索在 HTTP 请求中发送的 cookie 的值。

语法
Request.Cookies(cookie)[(key)|.attribute]

参数
cookie
指定要检索其值的 cookie。

key
可选参数,用于从 cookie 字典中检索子关头字的值。

attribe
指定 cookie 本身的有关信息。其属性参数以下:称呼 申明
HasKeys 只读。指定 cookie 是不是包含关头字。


注释
可以经由过程包含一个 key 值来拜候 cookie 字典的子关头字。如果拜候 cookie 字典时未指定 key,则所有关头字都会作为单个查询字符串前往。比方,如果 MyCookie 有两个关头字, First 和 Second ,而在调用 Request.Cookies时并未指定此中任何一个关头字,那么将前往以下字符串。

First=firstkeyvalue&Second=secondkeyvalue

如果客户端浏览器发送了两个同名的 cookie,那么 Request.Cookie 将前往此中途径布局较深的一个。比方,如果有两个同名的的 cookie,但此中一个的途径属性为 /www/ 而另外一个为 /www/home/,客户端浏览器同时将两个 cookie 都发送到 /www/home/ 目次中,那么 Request.Cookie 将只前往第二个 cookie。

要肯定某个 cookie 是不是是 cookie 字典(cookie 有否有关头字),可利用以下脚本。

<%= Request.Cookies("myCookie").HasKeys %>

如果 myCookie 是一个 cookie 字典,则前面的赋值为 TRUE。不然,为 FALSE。

可以经由过程循环遍历 Cookies 调集合的所有 cookie 或 cookie 中的所有关头字。但是,经由过程关头字在没有关头字的 cookie 上遍历将不产生任何输入。利用 HasKeys 语法先查抄一下 cookie 是不是有关头字,可以避免这类环境。下面的例子对此进行演示。

<%
'Print out the entire cookie collection.
For Each cookie in Request.Cookies
If Not cookie.HasKeys Then
'Print out the cookie string
%>
<%= cookie %> = <%= Request.Cookies(cookie)%>
<%
Else
'Print out the cookie collection
For Each key in Request.Cookies(cookie)
%>
<%= cookie %> (<%= key %>) = <%= Request.Cookies(cookie)(key)%>
<%
Next
End If
Next
%>

示例
下面的例子打印 Web 页中的 myCookie 的值。

这是名为 myCookie 的 cookie 值:
<%= Request.Cookies("myCookie") %>

Form
Form 调集经由过程利用 POST 体例的表格检索邮送到 HTTP 请求注释中的表格元素的值。

语法
Request.Form(element)[(index)|.Count]

参数
element
指定调集要检索的表格元素的称呼。

index
可选参数,利用该参数可以拜候某参数中多个值中的一个。它可所以 1 到 Request.Form(parameter).Count 之间的肆意整数。
注释
Form 调集按请求注释中参数的称呼来索引。Request.Form(element) 的值是请求注释中所有 element 值的数组。经由过程调用 Request.Form(element).Count 来肯定参数中值的个数。如果参数未关联多个值,则计数为 1。如果找不到参数,计数为 0 。

要援引有多个值的表格元素中的单个值,必须指定 index 值。index 参数可所以从 1 到 Request.Form(element).Count 中的肆意数字。如果援引多个表格参数中的一个,而未指定 index 值,前往的数据将是以逗号分开的字符串。

在利用 Request.Form 参数时,Web 办事器将阐发 HTTP 请求注释并前往指定的数据。如果利用法度需求未阐发的表格数据,可以经由过程调用不带参数的 Request.Form 拜候该数据。

利用重述符可以遍历表格请求中的所有数据值。比方,用户经由过程指定两个值填写表格,Chocolate 和 Butterscotch。对 FavoriteFlavor 参数,您可利用下面的脚本检索这些值。

<%
For Each item In Request.Form("FavoriteFlavor")
Response.Write item & "<BR>"
Next
%>

上述脚本显现以下。

Chocolate
Butterscotch

利用 For...Next 循环可以天生一样的输入,以以下脚本所示。

<%
For i = 1 To Request.Form("FavoriteFlavor").Count
Response.Write Request.Form("FavoriteFlavor")(i) & "<BR>"
Next
%>

利用该复述符可以显现参数名。以以下脚本所示。

<% For Each x In Request.Form %>
Request.Form( <%= x %> ) = <%= Request.Form(x) %> <BR>
<% Next %>

该脚本在浏览器上显现以下信息。

FavoriteFlavor = Chocolate
FavoriteFlavor = Butterscotch

示例
请考虑以下表格。

<FORM ACTION = "/scripts/submit.asp" METHOD = "post">
<P>Your first name: <INPUT NAME = "firstname" SIZE = 48>
<P>What is your favorite ice cream flavor: <SELECT NAME = "flavor">
<OPTION>Vanilla
<OPTION>Strawberry
<OPTION>Chocolate
<OPTION>Rocky Road</SELECT>
<p><INPUT TYPE = SUBMIT>
</FORM>

以下的请求注释可以从该脚本中发送。

firstname=James&flavor=Rocky+Road

可利用下面的脚本。

Welcome, <%= Request.Form("firstname") %>.
Your favorite flavor is <%= Request.Form("flavor") %>.

下面的输入就是成果。

Welcome, James. Your favorite flavor is Rocky Road.

如果利用下面的脚本

The unparsed form data is: <%= Request.Form %>

成果为

The unparsed form data is: firstname=James&flavor=Rocky+Road


QueryString
QueryString 调集检索 HTTP 查询字符串中变量的值。HTTP 查询字符串由问号 (?) 后的值指定。几个不合的过程都可以天生查询字符串。如,anchor 标识表记标帜

<A HREF= "example?string=this is a sample">string sample</A>

天生值为 "this is a sample" 的变量名字符串。经由过程发送表格或由用户在其浏览器的地点框中键入查询也能够天生查询字符串。

语法
Request.QueryString(variable)[(index)|.Count]

参数
variable
在 HTTP 查询字符串中指定要检索的变量名。

index
这是一个可选参数,可以用来检索 variable 的多个值中的某一个值。这可所以从 1 到 Request.QueryString(variable).Count 之间的任何整数。
注释
QueryString 调集是在 ServerVariables 调集合 QUERY_STRING 变量的阐发版本 。它可让您以称呼检索 QUERY_STRING 变量。Request.QueryString (参数) 的值是呈现在 QUERY_STRING 中所有参数 的值的数组。经由过程调用 Request.QueryString(parameter).Count 可以肯定参数有多少个值。如果变量未关联多个数据集,则计数为 1。如果找不到变量,计数为 0。

要在多个数据调集的一其中援引 QueryString 变量,请指定 index 的值。index 参数可所以 1 到 Request.QueryString(variable).Count 中肆意值。如果没有指定 index 的值,援引多个 QueryString 变量中的某个变量时,前往的数据是逗号分开的字符串。

在 Request.QueryString 中利用参数时,办事器阐发发送给请求的参数,并前往指定的数据。如果利用法度需求未阐发的 QueryString 数据,可以经由过程调用不带参数的 Request.QueryString 检索到这个数据。

可利用复述符在查询字符串中循环遍历所有的数据值。比方,如果发送以下的请求

http://NAMES.ASP?Q=Fred&Q=Sally

并且 Names.asp 包含下面的脚本,

---NAMES.ASP---
<%
For Each item In Request.QueryString("Q")
Response.Write item & "<BR>"
Next
%>

Names.asp 将显现以下。

Fred
Sally

上述脚本也能够用 Count 来写。

<%
For I = 1 To Request.QueryString("Q").Count
Response.Write Request.QueryString("Q")(I) & "<BR>"
Next
%>

示例
客户端请求

/scripts/directory-lookup.asp?name=fred&age=22

results in the following QUERY_STRING value.

name=fred&age=22.

QueryString 调集将包含 name 和 age两个成员。那么,您便可利用下面的脚本。

------分开线----------------------------
标签(Tag):request工具
------分开线----------------------------
保举内容
猜你感兴趣