╬∩Φ±αφΦσ εß·σΩ≥α Request

╬∩Φ±√Γασ∞√Θ εß·σΩ≥  Γδ σ≥± , ≥αΩµσ ΩαΩ Φ εß·σΩ≥ Response, ε≈σφⁿ ∩εδστφ√∞ Φ ∞ε∙φ√∞ Γ±≥≡εσφφ√∞ Φφ±≥≡≤∞σφ≥ε∞. ─αφφ√Θ εß·σΩ≥ ≡ Σ ∞σ≥εΣεΓ, ΩεδδσΩ÷ΦΘ Φ ±ΓεΘ±≥Γ. ╚⌡ ε∩Φ±αφΦσ ∩≡ΦΓεΣΦ≥±  φΦµσ:

╩εδδσΩ÷ΦΦ:

╠σ≥εΣ√:

╤ΓεΘ±≥Γα:

╩εδδσΩ÷Φ  Request.ClientCertificate

╩εδδσΩ÷Φ  ClientCertificate (╩δΦσφ≥±ΩΦΘ ±σ≡≥Φ⌠ΦΩα≥ - ²δσ∞σφ≥ αΓ≥ε≡Φτα÷ΦΦ) ∩ετΓεδ σ≥ ∩εδ≤≈α≥ⁿ ∩εδ  ±σ≡≥Φ⌠ΦΩα÷ΦΦ (ε∩≡σΣσδσφφ√σ ±≥αφΣα≡≥ε∞ X.509) Φτ τα∩≡ε±α ß≡α≤τσ≡α.

┼±δΦ ß≡α≤τσ≡ Φ±∩εδⁿτ≤σ≥ ∩≡ε≥εΩεδ SSL3.0/PCT1 (Σ≡≤πΦ∞Φ ±δεΓα∞Φ Φ±∩εδⁿτ≤σ≥±  URL, φα≈Φφα■∙ΦΘ±  ± https:// Γ∞σ±≥ε http://) Σδ  ∩εΣΩδ■≈σφΦ  Ω ±σ≡Γσ≡≤ ≥ε ±σ≡Γσ≡ τα≥≡σß≤σ≥ ±σ≡≥Φ⌠ΦΩα÷Φ■, φα ≈≥ε ß≡α≤τσ≡ Σεδµσφ ß≤Σσ≥ Γσ≡φ≤≥ⁿ ∩εδ  ±σ≡≥Φ⌠ΦΩα÷ΦΦ.

┼±δΦ ±σ≡≥Φ⌠ΦΩα≥ φσ ß√δ ∩σ≡σΣαφ, ≥ε ΩεδδσΩ÷Φ  ClientCertificate Γσ≡φσ≥ EMPTY (∩≤±≥ε).

╧σ≡σΣ ≥σ∞, ΩαΩ Γ√ ±∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ ClientCertificate-ΩεδδσΩ÷Φ■ Γ√ Σεδµφ√ ±Ωεφ⌠Φπ≤≡Φ≡εΓα≥ⁿ ±ΓεΘ ±σ≡Γσ≡ ≥αΩ, ≈≥εß√ εφ ≥≡σßεΓαδ ΩδΦσφ≥±ΩΦΘ ±σ≡≥Φ⌠ΦΩα≥.

╤Φφ≥αΩ±:

Request.ClientCertificate( Ωδ■≈ [∩εΣ∩εδσ] )

╧α≡α∞σ≥≡√:

Ωδ■≈
╙Ωαταφφεσ Φ∞  ∩εδ  ±σ≡≥Φ⌠ΦΩα≥α, Ωε≥ε≡εσ Γ√ ⌡ε≥Φ≥σ ∩εδ≤≈Φ≥ⁿ. ╩δΦσφ≥±ΩΦΘ ±σ≡≥Φ⌠ΦΩα≥ ±εΣσ≡µΦ≥ ±δσΣ≤■∙Φσ ∩εδ :

╟φα≈σφΦσ ╬∩Φ±αφΦσ
Certificate ╤≥≡εΩα, ±εΣσ≡µα∙α  ΣΓεΦ≈φ√Θ ∩ε≥εΩ Γ±σπε ±εΣσ≡µΦ∞επε ±σ≡≥Φ⌠ΦΩα≥α Γ ⌠ε≡∞α≥σ ASN.1
Flag ╠φεµσ±≥Γε ⌠δαµΩεΓ, Ωε≥ε≡√σ ∩≡σΣε±≥αΓδ ■≥ Σε∩εδφΦ≥σδⁿφ√■ Φφ⌠ε≡∞α÷Φ■ ε ΩδΦσφ≥±Ωε∞ ±σ≡≥Φ⌠ΦΩα≥σ. ╤δσΣ≤■∙σσ ΩεδΦ≈σ±≥Γε ⌠δαµΩεΓ ε∩≡σΣσδσφε:

ceCertPresent - ΩδΦσφ≥±ΩΦΘ ±σ≡≥Φ⌠ΦΩα≥ ∩≡σΣε±≥αΓδσφ (Φ∞σσ≥± ).

ceUnrecognizedIssuer - ∩ε±δσΣφ   ±σ≡≥Φ⌠ΦΩα÷Φ  Γ ΣαφφεΘ ÷σ∩Φ ∩εδ≤≈σφα ε≥ φσΦτΓσ±≥φεπε ΦτΣα≥σδ . ╥.σ. φσ  ±φε, Ω≥ε ΦτΣαδ (∩εΣ∩Φ±αδ) ±σ≡≥Φ⌠ΦΩα≥.

╟α∞σ≈αφΦσ: ─δ  ≥επε, ≈≥εß√ ∩εδ≤≈Φ≥ⁿ Σαφφ√σ ⌠δαµΩΦ, Γ√ Σεδµφ√ ΓΩδ■≈Φ≥ⁿ ΓΩδ■≈ασ∞√Θ ⌠αΘδ ±σ≡≥Φ⌠ΦΩα≥α ΩδΦσφ≥α Γ Γα° ASP-⌠αΘδ. ┼±δΦ Γ√ Φ±∩εδⁿτ≤σ≥σ VBScript, ∩εΣΩδ■≈Φ≥σ ⌠αΘδ cervbs.inc, Γ ±δ≤≈ασ ± JavaScript - ∩εΣΩδ■≈Φ≥σ ⌠αΘδ cerjavas.inc. ▌≥Φ ⌠αΘδ√ Φφ±≥αδΦ≡≤■≥±  Γ ∩α∩Ω≤ \InetPub\ASPSamp\Samples.

Issuer ╤≥≡εΩα, ±εΣσ≡µα∙α  ±∩Φ±εΩ ∩εΣ∩εδσΘ, ±εΣσ≡µα∙Φ⌡ Φφ⌠ε≡∞α÷Φ■ ε ΦτΣα≥σδσ ±σ≡≥Φ⌠ΦΩα≥α. ┼±δΦ ²≥ε τφα≈σφΦσ ≤Ωαταφε (ταΣαφε Γα∞Φ ∩≡Φ Γ√τεΓσ) ßστ ∩εΣ∩εδσΘ, ≥ε ΩεδσΩ÷Φ  ClientCertificate ΓετΓ≡α≥Φ≥ Γα∞ ±∩Φ±εΩ ∩εΣ∩εδσΘ ±ε τφα≈σφΦ ∞Φ, ≡ατΣσδσφφ√Θ τα∩ ≥√∞Φ. ╩ ∩≡Φ∞σ≡≤: C=US, O=Verisign Φ ≥αΩ Σαδσσ.
SerialNumber ╤≥≡εΩα, ±εΣσ≡µα∙α  ±σ≡ΦΘφ√Θ φε∞σ≡ ±σ≡≥Φ⌠ΦΩα≥α Γ ΓΦΣσ ASCII ±≥≡εΩΦ, ∩≡σΣ±≥αΓδσφφεΘ Γ ΓΦΣσ °σ±≥φαΣ÷α≥Φ≡Φ≈φ√⌡ ßαΘ≥, ≡ατΣσδσφφ√⌡ ≥Φ≡σ. ╩ ∩≡Φ∞σ≡≤ 04-67-└3-╤7
Subject ╤≥≡εΩα, Ωε≥ε≡α  ±εΣσ≡µΦ≥ ±∩Φ±εΩ τφα≈σφΦΘ ∩εΣ∩εδσΘ, Ωε≥ε≡√σ Γ ±Γε■ ε≈σ≡σΣⁿ ±εΣσ≡µα≥ Φφ⌠ε≡∞α÷Φ■ ε εß·σΩ≥σ αΓ≥ε≡Φτα÷ΦΦ (ε ∩σ≡±εφσ). ┼±δΦ ²≥ε τφα≈σφΦσ ≤Ωαταφε ßστ ∩εΣ∩εδσΘ, ≥ε ClientCertificate-ΩεδδσΩ÷Φ  Γσ≡φσ≥ ±∩Φ±εΩ ∩εΣ∩εδσΘ, ≡ατΣσδσφφ√Θ τα∩ ≥εΘ, Ω ∩≡Φ∞σ≡≤ C=US, O=Msft Φ ≥αΩ Σαδσσ.
ValidFrom ─α≥α, ≤Ωατ√Γα■∙α  φα ≥ε, ΩεπΣα ±σ≡≥Φ⌠ΦΩα≥ ∩≡ε°σδ ∩εΣ∩Φ±αφΦσ. ▌≥α Σα≥α ±εε≥Γσ≥±≥Γ≤σ≥ VBScript - ⌠ε≡∞α≥≤ Φ ταΓΦ±Φ≥ ε≥ ≡σπΦεφαδⁿφ√⌡ ≤±≥αφεΓεΩ. ╩ ∩≡Φ∞σ≡≤ ²≥ε (Σδ  USA) 9/26/96 11:59:59 pm
ValidUntil ─α≥α, ≤Ωατ√Γα■∙α  φα ≥ε, ΩεπΣα Φ±≥σ≈σ≥ ±≡εΩ ΣσΘ±≥ΓΦ  ≤Ωαταφφεπε ±σ≡≥Φ⌠ΦΩα≥α.

∩εΣ∩εδσ
φσ εß τα≥σδⁿφ√Θ ∩α≡α∞σ≥≡, Ωε≥ε≡√Θ Γ√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ Σδ  ∩εδ≤≈σφΦ  ΦφΣΦΓΦΣ≤αδⁿφ√⌡ ∩εδσΘ Γ ΩαµΣε∞ Φτ Subject ΦδΦ Issuer Ωδ■≈α⌡. ▌≥ε≥ ∩α≡α∞σ≥≡ ΣεßαΓδ σ≥±  Ω ∩α≡α∞σ≥≡≤ Ωδ■≈ ΩαΩ ±≤⌠⌠ΦΩ±. ╩ ∩≡Φ∞σ≡≤ - IssuerO ΦδΦ SubjectCN. ─αδσσ ∩≡σΣ±≥αΓδσφ ±∩Φ±εΩ ≥αΩΦ⌡ ∩εΣ∩εδσΘ.

╟φα≈σφΦσ ╬∩Φ±αφΦσ
C ╙Ωατ√Γασ≥ φατΓαφΦσ ±≥≡αφ√ ∩≡εΦ±⌡εµΣσφΦ 
CN ╙Ωατ√Γασ≥ εß∙σσ Φ∞  ∩εδⁿτεΓα≥σδ . ─αφφεσ ∩εΣ∩εδσ ∞εµσ≥ ß√≥ⁿ Φ±∩εδⁿτεΓαφε ≥εδⁿΩε ± Ωδ■≈σ∞ Subject
GN ╙Ωατ√Γασ≥ ∩εδ≤≈σφφεσ Φ∞ 
I ╙Ωατ√Γασ≥ φα ΦφΦ÷Φαδ√
L ╙Ωατ√Γασ≥ ∞σ±≥ε ≡α±∩εδεµσφΦ  (δεΩαδΦτα÷Φ■)
O ╙Ωατ√Γασ≥ φατΓαφΦσ Ωε∞∩αφΦΦ ΦδΦ ε≡παφΦτα÷ΦΦ
OU ╙Ωατ√Γασ≥ φατΓαφΦσ ∩εΣ≡ατΣσδσφΦ  Ωε∞∩αφΦΦ
S ╙Ωατ√Γασ≥ °≥α≥ ΦδΦ ≡σπΦεφ
T ╙Ωατ√Γασ≥ φα ε∩Φ±αφΦσ (ταπεδεΓεΩ) ΣαφφεΘ ∩σ≡±εφ√ ΦδΦ µσ ε≡παφΦτα÷ΦΦ

╟φα≈σφΦ  ∩εΣ∩εδσΘ, φσ ∩≡ΦΓσΣσφφ√⌡ Γ Σαφφε∞ ±∩Φ±Ωσ ∞επ≤≥ ß√≥ⁿ ΦΣσφ≥Φ⌠Φ÷Φ≡εΓαφφ√ ∩ε Φ⌡ ε∩≡σΣσδσφΦ■ Γ ASN.1. ╘ε≡∞α≥ ASN.1 ∩≡σΣ±≥αΓδ σ≥ Φτ ±σß  ±∩Φ±εΩ ≈Φ±σδ, ≡ατΣσδσφφ√⌡ ≥ε≈ΩεΘ. ╩ ∩≡Φ∞σ≡≤ 3.56.7886.34.

╟α∞σ≈αφΦσ:

┬√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ ≥±∩εδⁿτεΓα≥ⁿ ÷ΦΩδ, Σδ  ≥επε, ≈≥εß√ ∩εδ≤≈Φ≥ⁿ Γ±σ φατΓαφΦ  Φ τφα≈σφΦ  Ωδ■≈σΘ ΩεδδσΩ÷ΦΦ:

<%
For each key in Request.ClientCertificate
response.write(key & ":" & Request.ClientCertificate(key) & "<br>")
Next
%>

╧≡Φ∞σ≡√:

╤δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡ ∩εΩατ√Γασ≥ ΩαΩ ∞εµφε ≤τφα≥ⁿ ε ≥ε∞, σ±≥ⁿ δΦ ≤ ∩εδⁿτεΓα≥σδ  ±σ≡≥Φ⌠ΦΩα≥ ΦδΦ φσ≥.

<%
If len(Request.ClientCertificate("Subject")) = 0
Response.Write("╩δΦσφ≥±ΩΦΘ ±σ≡≥Φ⌠ΦΩα≥ ε≥±≤≥±≥Γ≤σ≥!")
End if
%>

╤δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡ ∩εΩατ√Γασ≥ ΩαΩ ∞εµφε ∩εδ≤≈Φ≥ⁿ εß∙σσ φατΓαφΦσ Ωε∞∩αφΦΦ, Ωε≥ε≡α  Γ√∩≤±≥Φδα ±σ≡≥Φ⌠ΦΩα≥.

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

╤δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡ ∩εΩατ√Γασ≥ ∩≡Φ∞σ≡ ∩≡εΓσ≡ΩΦ φα φατΓαφΦσ ε≡παφΦτα÷ΦΦ - ±≤ß·σΩ≥σ ΩδΦσφ≥±Ωεπε ±σ≡≥Φ⌠ΦΩα≥α.

<%
If (Request.ClientCertificate("Subject") = "Msft" )
Response.Write("╒ε≡ε°ΦΘ Γ√ßε≡ Ωε∞∩αφΦΦ :))!!!")
End if
%>

╤δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡ Γ√ΓεΣΦ≥ ±εεß∙σφΦσ ε Σα≥σ ∩≡σΩ≡α∙σφΦ  ΣσΘ±≥ΓΦ  φα±≥ε ∙σπε ±σ≡≥Φ⌠ΦΩα≥α.

─αφφ√Θ ±σ≡≥Φ⌠ΦΩα≥ ∩≡σΩ≡α≥Φ≥ ±Γεσ ΣσΘ±≥ΓΦσ
<% = Request.ClientCertificate("ValidUntil") %>

╤δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡ Σσ∞εφ±≥≡Φ≡≤σ≥ Φ±∩εδⁿτεΓαφΦσ ╘δαµΩεΓ, Σδ  ≥επε, ≈≥εß√ ≤τφα≥ⁿ ΦτΓσ±≥σφ δΦ ΦτΣα≥σδⁿ φα±≥ε ∙σπε ±σ≡≥Φ⌠ΦΩα≥α. ┬√≡αµφσφΦσ Include Γ ∩σ≡ΓεΘ ±≥≡εΩσ ±Ω≡Φ∩≥α ∩ετΓεδ σ≥ ∩ε±δσΣφσ∞≤ Φ±∩εδⁿτεΓα≥ⁿ εß≡α∙σφΦσ Ω φατΓαφΦ ∞ Φ∞σφεΓαφφ√⌡ ⌠δαµφεΓ (Ωεφ±≥αφ≥). ┬-∩≡Φφ÷Φ∩σ - Γ√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ ≈Φ±δεΓ√σ τφα≈σφΦ , Ωε≥ε≡√σ Γ√ ∞εµσ≥σ ≡α±∩σ≈α≥α≥ⁿ Φ Φ±∩εδⁿτεΓα≥ⁿ Γ ΣαδⁿφσΘ°σ∞.

<!--#include file="cervbs.inc# -->
<%
If Request.ClientCertificate("Flags") and ceUnrecognizedIssuer then
Response.Write "═σΦτΓσ±≥φ√Θ ΦτΣα≥σδⁿ ±σ≡≥Φ⌠ΦΩα≥α!"
End if
%>

╩εδδσΩ÷Φ  Request.Cookies

╩εδδσΩ÷Φ  Cookies (Φφ⌠ε≡∞α÷Φ , ∩ετΓεδ ■∙α  ⌡≡αφΦ≥ⁿ Φφ⌠ε≡∞α÷Φ■ ε ±σ±±ΦΦ) ∩ετΓεδ σ≥ ∩εδ≤≈α≥ⁿ τφα≈σφΦ  cookies, ∩σ≡σΣαφφ√⌡ Γ τα∩≡ε±σ HTTP.

╤Φφ≥αΩ±:

Request.Cookies( cookie ) [ (Ωδ■≈) | .α≥≡Φß≤≥√ ]

╧α≡α∞σ≥≡√:

cookie
╙Ωαταφφεσ Φ∞  cookie, τφα≈σφΦ  Ωε≥ε≡√⌡ Γ√ ⌡ε≥Φ≥σ ∩εδ≤≈Φ≥ⁿ.
Ωδ■≈
═σεß τα≥σδⁿφ√Θ ∩α≡α∞σ≥≡, Φ±∩εδⁿτ≤σ∞√Θ Σδ  ∩εδ≤≈σφΦ  τφα≈σφΦ  ∩εΣΩδ■≈α Φτ ΩεδδσΩ÷ΦΦ Σαφφ√⌡ cookie.
α≥≡Φß≤≥√
╤∩σ÷Φ⌠Φ≈σ±Ωα  Φφ⌠ε≡∞α÷Φ  ε ±α∞Φ⌡ cookie. ─αφφ√Θ ∩α≡α∞σ≥≡ ∞εµσ≥ Φ∞σ≥ⁿ ±δσΣ≤■∙ΦΘ ΓΦΣ:

╟φα≈σφΦσ ╬∩Φ±αφΦσ
HasKeys ╥εδⁿΩε Σδ  ≈≥σφΦ . ╙Ωατ√Γασ≥, ±εΣσ≡µΦ≥ δΦ cookies ≤Ωαταφφ√σ Ωδ■≈Φ

╟α∞σ≈αφΦσ:

┬√ ∞εµσ≥σ ∩εδ≤≈α≥ⁿ Σε±≥≤∩ Ω ∩εΣΩδ■≈α∞ ΩεδδσΩ÷ΦΦ Φφ⌠ε≡∞α÷ΦΦ (cookie) ΓΩδ■≈α  τφα≈σφΦσ Σδ  Ωδ■≈α. ┼±δΦ cookies Σε±≥≤∩σφ ± ≤ΩαταφΦσ∞ Ωδ■≈α, ≥ε Γ±σ Ωδ■≈Φ ΓετΓ≡α∙α■≥±  Γ ΓΦΣσ εß√≈φεΘ ±≥≡εΩΦ τα∩≡ε±α (ΩαΩ ∞σ≥εΣ GET). ╩ ∩≡Φ∞σ≡≤, σ±δΦ MyCookie Φ∞σσ≥ ΣΓα Ωδ■≈α First Φ Second Φ Γ√ φσ ≤Ωατ√Γασ≥σ Ω ΩαΩε∞≤ Φτ ²≥Φ⌡ Ωδ■≈σΘ Γ√ εß≡α∙ασ≥σ±ⁿ Γ√τ√Γα  Request.Cookies, ≥ε Γα∞ ß≤Σσ≥ ΓετΓ≡α∙σφα ±δσΣ≤■∙α  ±≥≡εΩα:

First=τφα≈σφΦσ_Ωδ■≈α_first&Second=τφα≈σφΦσ_Ωδ■≈α_second

┼±δΦ ΣΓεσ cookie ∩εΣ εΣΦφαΩεΓ√∞Φ Φ∞σφα∞Φ ß√δΦ ∩σ≡σΣαφ√ ß≡α≤τσ≡≤, ≥ε Request.Cookies ΓετΓ≡α≥Φ≥ εΣφ≤ Φτ φΦ⌡, φε ≥≤, ≤ Ωε≥ε≡εΘ ßεδσσ πδ≤ßεΩα  ±≥≡≤Ω≥≤≡α (φαΦßεδⁿ°α  πδ≤ßΦφα Γδεµσφφε±≥Φ). ╩ ∩≡Φ∞σ≡≤ σ±δΦ ∩σ≡σΣα■≥±  ΣΓεσ cookie ∩εΣ εΣΦφαΩεΓ√∞Φ Φ∞σφα∞Φ, φε εΣΦφ Φ∞σσ≥ α≥≡Φß≤≥ /www/ α Σ≡≤πεΘ /www/home/, ≥ε ΩδΦσφ≥±ΩΦΘ ß≡α≤τσ≡ ∩σ≡σΣα±≥ εßσ cookie Γ ΣΦ≡σΩ≥ε≡Φ■ /www/home/, φε Request.Cookies ΓετΓ≡α≥Φ≥ ≥εδⁿΩε Γ≥ε≡≤■.

ε∩≡σΣσδσφΦ  ≥επε, σ±δ≥ⁿ δΦ cookie ± ≥αΩΦ∞ φατΓαφΦσ∞ Γ Φ⌡ φαßε≡σ, Γ√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ ±δσΣ≤■∙ΦΘ ±Ω≡Φ∩≥:

<% = Request.Cookies("MyCookie").HasKey %>

┼±δΦ MyCookie Φ∞σ■≥± , ≥ε ΓετΓ≡α≥Φ≥±  TRUE, Φφα≈σ FALSE.

┬√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ Φ≥σ≡α≥ε≡ Γ ÷ΦΩδσ ± Cookie-ΩεδδσΩ÷ΦσΘ Σδ  ∩σ≡σßε≡α Ωδ■≈σΘ. ╤∞ε≥≡Φ≥σ ∩≡Φ∞σ≡ φΦµσ:

<%
'╧σ≈α≥ασ∞ Γ±■ ΩεδδσΩ÷Φ■ Cookie
For each cookie in Request.Cookies
if not cookie.HasKey then
'╧σ≈α≥ασ∞ ±≥≡εΩ≤ cookie
%>
<% = cookie %> = <% = request.Cookies(cookie)%>
<%
Else
For each key in Request.Cookies(cookie)
%>
<% = cookie %> (<% = key %>) = <% = Request.Cookies(cookie) (key) %>
<%
Next
End if
Next
%>

╩εδδσΩ÷Φ  Request.Form

╩εδδσΩ÷Φ  Form ∩ετΓεδ σ≥ ∩εδ≤≈α≥ⁿ τφα≈σφΦ  Φτ ⌠ε≡∞√ ²δσ∞σφ≥εΓ, ∩ε±δαφφ√⌡ HTTP τα∩≡ε±ε∞ ∩≡Φ Φ±∩εδⁿτεΓαφΦΦ ∞σ≥εΣα POST.

╤Φφ≥αΩ±:

Request.Form( ²δσ∞σφ≥ ) [ ( ΦφΣσΩ± ) | .Count ]

╧α≡α∞σ≥≡√:

²δσ∞σφ≥
═ατΓαφΦσ ²δσ∞σφ≥α ⌠ε≡∞√, τφα≈σφΦσ Ωε≥ε≡επε ∩≡σΣ∩εδεπασ≥±  ∩εδ≤≈Φ≥ⁿ
ΦφΣσΩ±
═σ εß τα≥σδⁿφ√Θ ∩α≡α∞σ≥≡, Ωε≥ε≡√Θ ∩ετΓεδ σ≥ Γα∞ ∩εδ≤≈Φ≥ⁿ Σε±≥≤∩ Ω εΣφε∞≤ Φτ τφα≈σφΦΘ ∩α≡α∞σ≥≡α (Γ ≥ε∞ ±δ≤≈ασ σ±δΦ ∩σ≡σΣαφε φσ εΣφε τφα≈σφΦσ). ▌≥ε ∞εµσ≥ ß√≥ⁿ δ■ßεσ τφα≈σφΦσ (÷σδε≈Φ±δσφφεσ) Γ ΣΦα∩ατεφσ ε≥ 1 Σε Request.Form(²δσ∞σφ≥).Count.

╟α∞σ≈αφΦσ:

╩εδδσΩ÷Φ  Form ΦφΣσΩ±Φ≡≤σ≥±  ∩ε Φ∞σφα∞ ∩α≡α∞σ≥≡α Γ ≥σδσ τα∩≡ε±α. ╟φα≈σφΦσ Request.Form(²δσ∞σφ≥)  Γδ σ≥±  ∞α±±ΦΓε∞ Γ±σ τφα≈σφΦΘ ²≥επε ²δσ∞σφ≥α, Γ±≥≡σ≥ΦΓ°Φ⌡±  Γ ≥σδσ τα∩≡ε±α. ┬√ ∞εµσ≥σ ε∩≡σΣσδΦ≥ⁿ ΩεδΦ≈σ±≥Γε τφα≈σφΦΘ ∩σ≡σΣαφφ√⌡ Φτ ⌠ε≡∞√ ∩≤≥σ∞ Γ√τεΓα ±δσΣ≤■∙σΘ Ωεφ±≥≡≤Ω÷ΦΦ: Request.Form(²δσ∞σφ≥).Count. ┼±δΦ ∩α≡α∞σ≥≡ Φ∞σσ≥ σΣΦφ±≥Γσφφεσ τφα≈σφΦσ ±Γ ταφφεσ ± φΦ∞ Φ ±≈σ≥≈ΦΩ ΓετΓ≡α∙ασ≥±  ≡αΓφ√∞ 1. ┼±δΦ µσ ∩α≡α∞σ≥≡ (²δσ∞σφ≥) φσ φαΘΣσφ ±εΓ±σ∞, ≥ε ±≈σ≥≈ΦΩ Γσ≡φσ≥ 0.

─δ  ε∩Φ±αφΦ  ∞φεπετφα≈φεπε ε∩≡σΣσδσφΦ  ²δσ∞σφ≥α ⌠ε≡∞√ Γ√ Σεδµφ√ ≤Ωατα≥ⁿ τφα≈σφΦσ ΦφΣσΩ±α. ╧α≡α∞σ≥≡ ΦφΣσΩ± ∞εµσ≥ ∩≡Φ±≤≥±≥ΓεΓα≥ⁿ δ■ßεσ ≈Φ±δε ε≥ 1 Σε Request.Form(²δσ∞σφ≥).Count. ┼±δΦ Γ√ ε∩Φ±√Γασ≥σ εΣΦφ Φτ ∞φεµσ±≥Γα τφα≈σφΦΘ ²δσ∞σφ≥εΓ ßστ ≤ΩαταφΦ  τφα≈σφΦ  ΦφΣσΩ±α, ≥ε ΓετΓ≡α∙ασ∞εσ τφα≈σφΦσ ∩≡Φ∞σ≥ ΓΦΣ ±≥≡εΩΦ, τφα≈σφΦ  Γ Ωε≥ε≡εΘ ≡ατΣσδσφ√ τα∩ ≥√∞Φ.

╩επΣα Γ√ Φ±∩εδⁿτ≤σ≥σ ∩α≡α∞σ≥≡√ ± Request.Form Γα° ±σ≡Γσ≡ ∩≡σεß≡ατ≤σ≥ (≡ατßΦ≡ασ≥) ≥σδε HTTP τα∩≡ε±α Φ ΓετΓ≡α∙ασ≥ ≤Ωαταφφ√σ Σαφφ√σ. ┼±δΦ Γ√°σ ∩≡ΦδεµσφΦσ ≥≡σß≤σ≥ Φ±∩εδⁿτεΓαφΦ  φσ ≡ατεß≡αφφ√⌡ (φσ ∩≡σεß≡ατεΓαφφ√⌡) Σαφφ√⌡ τα∩≡ε±α, ≥ε Γα∞ φσεß⌡εΣΦ∞ε Γ√τΓα≥ⁿ Request.Form φε ßστ ∩α≡α∞σ≥≡εΓ.

┬√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ Φ≥σ≡α≥ε≡ ÷ΦΩδα Σδ  Γ√ΓεΣα Γ±σ Σαφφ√⌡ τα∩≡ε±α (Φτ ⌠ε≡∞√). ╧≡Φ∞σ≡, ±δσΣ≤■∙ΦΘ φΦµσ, ∩εΩατ√Γασ≥, ≈≥ε σ±δΦ ∩εδⁿτεΓα≥σδⁿ τα∩εδφΦδ ⌠ε≡∞≤ ≤ΩαταΓ ΣΓα τφα≈σφΦ , ╩εφ⌠σ≥√ Φ ╟σ⌠Φ≡ Γ ∞σφ■ ╦■ßΦ∞√σ ╩εφΣΦ≥σ≡±ΩΦσ ╚τΣσδΦ  (∩α≡α∞σ≥≡ ± Φ∞σφσ∞ Sweets), ≥ε , Γ√ ±∞εµσ≥σ ∩εδ≤≈Φ≥ⁿ ±δσΣ≤■∙Φσ τφα≈σφΦ  Φ±∩εδⁿτ≤  ∩≡Φ∞σ≡:

<% For each item In Request.Form("Sweets")
response.write(item & "<br>")
next
%>

╧≡Φ Γ√∩εδφσφΦΦ Σαφφεπε ∩≡Φ∞σ≡α Γ√ ≤ΓΦΣΦ≥σ ±δσΣ≤■∙σσ:

╩εφ⌠σ≥√
╟σ⌠Φ≡

╥αΩεΘ µσ Γ√ΓεΣ ∞εµσ≥ ß√≥ⁿ ±Σσδαφ ± Φ±∩εδⁿτεΓαφΦσ∞ ÷ΦΩδα For...Next, ≈≥ε Φ Σσ∞εφ±≥≡Φ≡≤σ≥ ±δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡

<% For i=1 to Request.Form("Sweets").Count
response.write(Request.Form("Sweets") (i) & "<br>")
next
%>

┬√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ Φ≥σ≡α≥ε≡ ÷ΦΩδα Σδ  Γ√ΓεΣα Φ∞σφΦ ∩α≡α∞σ≥≡α, ΩαΩ ∩εΩαταφε φΦµσ:

<% For Each x In Request.Form("Sweets")%>
Request.Form( <%= x %> ) = <% request.from (x) %> <br>
<% next %>

─αφφ√Θ ±Ω≡Φ∩≥ ΓετΓ≡α≥Φ≥ ß≡α≤τσ≡≤ ±δσΣ≤■∙ΦΘ ≥σΩ±≥:

Sweets = ╩εφ⌠σ≥√
Sweets = ╟σ⌠Φ≡

╧≡Φ∞σ≡√:

╚±∩εδⁿτ≤σ∞ ±δσΣ≤■∙≤■ ⌠ε≡∞≤:

<FORM ACTION = "/scripts/submit.asp" METHOD = "post">
<P>┬α°σ Φ∞ : <INPUT NAME = "firstname" SIZE = 48>
<P>╩αΩεΩΦσ ±δαΣε±≥Φ Γ√ ∩≡σΣ∩ε≈Φ≥ασ≥σ: <SELECT NAME = "sweets">
<OPTION>╩εφ⌠σ≥√
<OPTION>╟σ⌠Φ≡
<OPTION>╪εΩεδαΣ
<OPTION>╦σΣσφ÷√</SELECT>
<p><INPUT TYPE = SUBMIT>
</FORM>

┬ε≥ ≥αΩεΘ τα∩≡ε± ß≤Σσ≥ ∩ε±√δα≥ⁿ φα°α ⌠ε≡∞α φα ±σ≡Γσ≡:

firstname=╠α≡α≥&sweets=╩εφ⌠σ≥√

─αδσσ ΦΣσ≥ φα° ±Ω≡Φ∩≥:

─εß≡ε ∩εµαδεΓα≥ⁿ, <%= Request.Form("firstname") %>.
┬α°Φ δ■ßΦ∞√σ ±δαΣε±≥Φ - <%= Request.Form("sweets") %>!

═α° ±Ω≡Φ∩≥ ∩ε≡εΣΦ≥ ±δσΣ≤■∙ΦΘ ≡στ≤δⁿ≥α≥:

─εß≡ε ∩εµαδεΓα≥ⁿ, ╠α≡α≥. ┬α°Φ δ■ßΦ∞√σ ±δαΣε±≥Φ - ╩εφ⌠σ≥√!

 

╩εδδσΩ÷Φ  Request.>QueryString

╩εδδσΩ÷Φ  QueryString ∩εδ≤≈ασ≥ τφα≈σφΦ  ∩σ≡σ∞σφφ√⌡ Φ⌡ HTTP-±≥≡εΩΦ τα∩≡ε±α. ╤≥≡εΩα τα∩≡ε±α ε∩≡σΣσδ σ≥±  τφα≈σφΦ ∞Φ, ±δσΣ≤■∙Φ∞Φ τα τφαΩε∞ Γε∩≡ε±α (?). ═σΩε≥ε≡√σ ≡ατδΦ≈φ√σ ∩≡ε÷σ±±√ ∞επ≤≥ πσφσ≡Φ≡εΓα≥ⁿ ±≥≡εΩ≤ τα∩≡ε±α. ─δ  ∩≡Φ∞σ≡α, ≥απ αφΩε≡

<a href="example?string=this is sample">╤≥≡εΩα ∩≡Φ∞σ≡α</a>

Γ√≡αßα≥√Γασ≥ τφα≈σφΦσ ± Φ∞σφσφ∞ String Φ τφα≈σφΦσ∞ "this is sample". ╤≥≡εΩα τα∩≡ε±α ≥αΩµσ πσφσ≡Φ≡≤σ≥±  ∩≡Φ ∩σ≡σΣα≈Φ Σαφφ√⌡ ∩≡Φ εß≡αßε≥Ωσ ⌠ε≡∞√ ΦδΦ ∩≡ ∞√∞ ΓΓεΣε∞ ±≥≡εΩΦ ∩εδⁿτεΓα≥σδσ∞ ∩≡ ∞ε Γ ß≡α≤τσ≡ (±≥≡εΩα αΣ≡σ±α).

╤Φφ≥αΩ±:

Request.QueryString( ∩σ≡σ∞σφφα  ) [ ( ΦφΣσΩ± ) | .Count ]

╧α≡α∞σ≥≡√:

∩σ≡σ∞σφφα 
╚∞  ∩σ≡σ∞σφφεΘ, ≈σ≡στ Ωε≥≤≡≤■ ß≤Σσ≥ ∩σ≡σΣαΓα≥ⁿ±  τφα≈σφΦσ.
ΦφΣσΩ±
═σ εß τα≥σδⁿφ√Θ ∩α≡α∞σ≥≡, Ωε≥ε≡√Θ ∩ετΓεδ σ≥ Γα∞ ∩εδ≤≈Φ≥ⁿ Σε±≥≤∩ Ω εΣφε∞≤ Φτ τφα≈σφΦΘ ∩α≡α∞σ≥≡α (Γ ≥ε∞ ±δ≤≈ασ σ±δΦ ∩σ≡σΣαφε φσ εΣφε τφα≈σφΦσ). ▌≥ε ∞εµσ≥ ß√≥ⁿ δ■ßεσ τφα≈σφΦσ (÷σδε≈Φ±δσφφεσ) Γ ΣΦα∩ατεφσ ε≥ 1 Σε Request.QueryString(²δσ∞σφ≥).Count.

╟α∞σ≈αφΦσ:

╩εδδσΩ÷Φ  QueryString ²≥ε ≡ατεß≡αφφ√Θ Γα≡Φαφ≥ (∩≡σεß≡ατεΓαφφ√Θ) Φτ ∩σ≡σ∞σφφεΘ QUERY_STRING Γ ΩεδδσΩ÷ΦΦ ServerVariables. ▌≥ε ∩ετΓεδ σ≥ Γα∞ ∩εδ≤≈α≥ⁿ ∩σ≡σ∞σφφ√σ Φτ QUERY_STRING ∩ε Φ∞σφΦ. ╟φα≈σφΦσ Request.QueryString(²δσ∞σφ≥) ²≥ε ∞α±±ΦΓ Γ±σ⌡ τφα≈σφΦΘ ²δσ∞σφ≥α Ωε≥ε≡√σ Γ±≥≡σ≈α■≥±  Γ ∩≡σ∞σφφεΘ QUERY_STRING. ┬√ ∞εµσ≥σ ε∩≡σΣσδΦ≥ⁿ ≈Φ±δε τφα≈σφΦΘ Σαφφεπε ²δσ∞σφ≥α Γ√τεΓε∞ Request.QueryString(²δσ∞σφ≥).Count.
┼±δΦ ²δσ∞σφ≥ Φ∞σσ≥ Γ±σπε εΣφε τφα≈σφΦσ, ≥ε ²≥ε≥ Γ√τεΓ Γσ≡φσ≥ 1, σ±δΦ µσ ≥αΩεπε ²δσ∞σφ≥α φσ≥ ΓεΓ±σ, ≥ε ≡στ≤δⁿ≥α≥ ß≤Σσ≥ 0.

╧≡Φ∞σ≡√:

╩δΦσφ≥±ΩΦΘ τα∩≡ε±:

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

╨στ≤δⁿ≥α≥ ∞√ ΓΦΣΦ∞ Γ ±δσΣ≤■∙σΘ ±≥≡εΩσ (QUERY_STRING):

name=fred&age=22

╩εδδσΩ÷Φ  QueryString ±εΣσ≡µΦ≥ Γ Σαφφε∞ ±δ≤≈ασ 2 ≈δσφα - ²≥ε name Φ age. ┬√ ∞εµσ≥σ Γε±∩εδⁿτεΓα≥ⁿ±  ±δσΣ≤■∙Φ∞ ±Ω≡Φ∩≥ε∞:

─εß≡ε ∩εµαδεΓα≥ⁿ, <%= Request.QueryString("name") %>.
┬α° Γετ≡α±≥ - <%= Request.Form("age") %>!

╚ ∩εδ≤≈Φ∞:

─εß≡ε ∩εµαδεΓα≥ⁿ, Fred. ┬α° Γετ≡α±≥ - 22.

╩εδδσΩ÷Φ  Request.ServerVariables

╩εδδσΩ÷Φ  ServerVariables ∩ετΓεδ σ≥ ∩εδ≤≈α≥ⁿ τφα≈σφΦ  ∩≡σΣε∩≡σΣσδσφφ√⌡ ∩σ≡σ∞σφφ√⌡ εΩ≡≤µσφΦ .

╤Φφ≥αΩ±:

Request.ServerVariables( ∩σ≡σ∞σφφα  )

╧α≡α∞σ≥≡√:

∩σ≡σ∞σφφα 
╙Ωατ√Γασ≥ Φ∞  ∩σ≡σ∞σφφεΘ (α ≥ε≈φσσ Ωεφ±≥αφ≥√) ±≡σΣ√ (εΩ≡≤µσφΦ ) ±σ≡Γσ≡α.
╬φα ∞εµσ≥ ß√≥ⁿ εΣφεΘ Φτ ±δσΣ≤■∙Φ⌡ τφα≈σφΦΘ:

╧σ≡σ∞σφφα  ╬∩Φ±αφΦσ
ALL_HTTP ┬±σ HTTP-ταπεδεΓΩΦ, ∩σ≡σΣαφφ√σ ΩδΦσφ≥≤.
ALL_RAW ╧εδ≤≈ασ≥ Γ±σ ταπεδεΓΩΦ Γ ΓΦΣσ RAW. ╨ατδΦ≈Φσ ∞σµΣ≤ ALL_RAW Φ ALL_HTTP Γ ≥ε∞, ≈≥ε ALL_HTTP ≡ατ∞σ∙ασ≥±  ΩαΩ HTTP_ ∩≡σ⌠ΦΩ± ∩σ≡σΣ Φ∞σφσ∞ ταπεδεΓΩα, α Φ∞  ταπεδεΓΩα Γ±σπΣα ±≥≡ε≈φεσ. ┬ ALL_RAW Φ∞  ταπεδεΓΩα Φ τφα≈σφΦσ ∩≡Φ±≤≥±≥Γ≤■≥ Γ ≥ε∞ ΓΦΣσ, Γ Ωε≥≡ε∞ εφΦ ∩εδ≤≈σφ√ ΩδΦσφ≥ε∞.
APPL_MD_PATH ╧εδ≤≈ασ≥ ∞σ≥α-∩≤≥ⁿ (WAM) Ω ∩≡ΦδεµσφΦ■ Σδ  ISAPI Dll.
APPL_PHYSICAL_PATH ╧εδ≤≈ασ≥ ⌠ΦτΦ≈σ±ΩΦΘ ∩≤≥ⁿ ≤Ωατ√Γα■∙ΦΘ φα ≡α±∩εδεµσφΦσ ∞σ≥α-∩≤≥ . IIS ΩεφΓσ≡≥Φ≡≤σ≥ APPL_MD_PATH Ω ⌠ΦτΦ≈σ±Ωε∞≤ (ΣΦ≡σΩ≥ε≡ΦΦ) ∩≤≥Φ Φ ΓετΓ≡α∙ασ≥ ²≥ε τφα≈σφΦσ.
AUTH_PASSWORD ╟φα≈σφΦσ, ΓΓσΣσφφεσ ΩδΦσφ≥ε∞ Γ ΣΦαδεπσ αΓ≥ε≡Φτα÷ΦΦ. ▌≥α ∩σ≡σ∞σφφα  Σε±≥≤∩φα ≥εδⁿΩε ∩≡Φ ε±φεΓφεΘ (Basic) αΓ≥ε≡Φτα÷ΦΦ.
AUTH_TYPE ╠σ≥εΣ αΓ≥ε≡Φτα÷ΦΦ, Ωε≥ε≡√Θ ±σ≡Γσ≡ Φ±∩εδⁿτ≤σ≥ Σδ  ∩≡εΓσ≡ΩΦ ∩≡αΓ ∩εδⁿτεΓα≥σδσΘ, ΩεπΣα ∩≡Φ∞σφ σ≥±  ∩ε∩√≥Ωα ∩εδ≤≈Φ≥ⁿ ±Ω≡Φ∩≥, τα∙Φ∙σφφ√Θ ∩α≡εδσ∞.
AUTH_USER ═σ εß≡αßε≥αφφεσ Φ∞  ∩εδⁿτεΓα≥σδ  (∩≡ε°σΣ°σπε αΓ≥ε≡Φτα÷Φ■).
CERT_COOKIE ╙φΦΩαδⁿφ√Θ ID (ΦΣσφ≥Φ⌠ΦΩα≥ε≡) Σδ  ΩδΦσφ≥±Ωεπε ±σ≡≥Φ⌠ΦΩα≥α, ΓετΓ≡α∙ασ≥±  ΩαΩ ±≥≡εΩα. ╠εµσ≥ ß√≥ⁿ Φ±∩εδⁿτεΓαφ ΩαΩ ∩εΣ∩Φ±ⁿ ±σ≡≥Φ⌠Φ÷Φ≡εΓαφφεπε ΩδΦσφ≥α.
CERT_FLAGS ßΦ≥0 - σ±δΦ ≤±≥αφεΓδσφ (1) - ±σ≡≥Φ⌠ΦΩα≥ ∩≡Φ±≤≥±≥Γ≤σ≥ ßΦ≥1 - σ±δΦ ≤±≥αφεΓδσφ - Γ ±δ≤≈ασ, ΩεπΣα αΓ≥ε≡Φτα÷Φ  ΩδΦσφ≥α ∩≡ε°δα φσ ≤±∩σ°φε. ═σ ≤Σαδε±ⁿ ε∩ετφα≥ⁿ ∩εδⁿτεΓα≥σδ .
CERT_ISSUER ╚τΣα≥σδⁿ ±σ≡≥Φ⌠ΦΩα≥α (O=MS,OU=IAS,CN=user name, C=USA).
CERT_KEYSIZE ╫Φ±δε ßΦ≥, Φ±∩εδⁿτ≤σ∞εσ Γ SSL, Ω ∩≡Φ∞σ≡≤ 128.
CERT_SECRETKEYSIZE ╨ατ∞σ≡ (Γ ßΦ≥α⌡) ±σΩ≡σ≥φεπε Ωδ■≈α φα ±σ≡Γσ≡σ. (╩ ∩≡Φ∞σ≡≤ 1024).
CERT_SERIALNUMBER ╧εδσ ±σ≡ΦΘφεπε φε∞σ≡α ΩδΦσφ≥±Ωεπε ±σ≡≥Φ⌠ΦΩα≥α.
CERT_SERVER_ISSUER ╚τΣα≥σδⁿ ±σ≡Γσ≡φεπε ±σ≡≥Φ⌠ΦΩα≥α.
CERT_SERVER_SUBJECT ╤≤ß·σΩ≥ ±σ≡Γσ≡φεπε ±σ≡≥Φ⌠ΦΩα≥α.
CERT_SUBJECT ╤≤ß·σΩ≥ ΩδΦσφ≥±Ωεπε ±σ≡≥Φ⌠ΦΩα≥α.
CONTENT_LENGHT ─δΦφα ±εΣσ≡µΦ∞επε (Γ ≥ε∞ ΓΦΣσ, ΩαΩ Γτ ≥ε ΩδΦσφ≥ε∞).
CONTENT_TYPE ╥Φ∩ Σαφφ√⌡ Γ ±εΣσ≡µΦ∞ε∞. ╚±∩εδⁿτ≤σ≥±  ± τα∩≡ε±α∞Φ, Ωε≥ε≡√σ ∩≡Φδαπα■≥ Φφ⌠ε≡∞α÷Φ■ Γ∞σ±≥σ ± τα∩≡ε±ε∞, ≥αΩΦσ ΩαΩ GET, POST, PUT.
GATEWAY_INTERFACE ┬σ≡±Φ  ±∩σ÷Φ⌠ΦΩα÷ΦΦ CGI, Φ±∩εδⁿτ≤σ∞α  φα ±σ≡Γσ≡σ. ┬ ⌠ε≡∞α≥σ CGI/┬σ≡±Φ .
HTTP_<HeaderName> ╟φα≈σφΦσ, τα∩ε∞Φφασ∞εσ Γ ταπεδεΓΩσ HeaderName. ╦■ßεΘ ταπεδεΓεΩ, ∩≡ΦΓσΣσφφ√Θ Γ ΣαφφεΘ ≥αßδΦ÷σ Σεδµσφ φα≈Φφα≥ⁿ±  ± HTTP_.

╟α∞σ≈αφΦσ. ╤σ≡Γσ≡ Φφ≥σ≡∩≡σ≥Φ≡≤σ≥ δ■ßεΘ ±Φ∞Γεδ ∩εΣ≈σ≡ΩΦΓαφΦ  Γ HeaderName ΩαΩ ≥Φ≡σ Γ Γ φα±≥ε ∙σ∞ ταπεδεΓΩσ. ╩ ∩≡Φ∞σ≡≤ σ±δΦ Γ√ ≤Ωαµσ≥σ HTTP_MY_HEADER, ≥ε ±σ≡Γσ≡ ∩ε°δσ≥ ταπεδεΓεΩ, ΩαΩ MY-HEADER.

HTTPS ┬ετΓ≡α∙ασ≥ ON σ±δΦ τα∩≡ε± ∩≡ε°σδ ≈σ≡στ SSL-∩≡ε≥εΩεδ ΦδΦ µσ ΓετΓ≡α∙ασ≥ OFF σ±δΦ ∩αΩσ≥ φσ ß√δ τα∙Φ∙σφ.
HTTPS_KEYSIZE ╫Φ±δε ßΦ≥ (≡ατ∞σ≡) SSL-Ωδ■≈α, Ω ∩≡Φ∞σ≡≤ 128.
HTTPS_SECRETKEYSIZE ╫Φ±δε ßΦ≥ (≡ατ∞σ≡) SSL ±σΩ≡σ≥φεπε Ωδ■≈α φα ±σ≡Γσ≡σ, Ω ∩≡Φ∞σ≡≤ 1024.
HTTPS_SERVER_ISSUER ╚τΣα≥σδⁿ ±σ≡Γσ≡φεπε ±σ≡≥Φ⌠ΦΩα≥α.
HTTP_SERVER_SUBJECT ┬δαΣσδσ÷ ±σ≡Γσ≡φεπε ±σ≡≥Φ⌠ΦΩα≥α.
INSTANCE_ID ╥σΩ≤∙ΦΘ ΦΣσφ≥Φ⌠ΦΩα≥ε≡ Σδ  IIS Γ ≥σΩ±≥εΓε∞ ⌠ε≡∞α≥σ. ┼±δΦ εφ ≡αΓσφ 1, ≥ε ²≥ε ∩≡σΣ±≥αΓδ σ≥±  Γ ΓΦΣσ ±≥≡εΩΦ.
INSTANCE_META_PATH ╠σ≥α-∩≤≥ⁿ Ω ≥ε∞≤ ∩≡ΦδεµσφΦ■, Ωε≥ε≡εσ ß≤Σσ≥ ε≥Γσ≈α≥ⁿ φα τα∩≡ε±.
LOCAL_ADDR ┬ετΓ≡α∙ασ≥ αΣ≡σ± ±σ≡Γσ≡α (IP), Ωε≥ε≡√Θ ±Γ ταφ ± φΦ∞ Γ IIS. ▌≥ε Γαµφε φα ∞α°Φφα⌡, Ωε≥ε≡√σ ε≥τ√Γα■≥±  φα ∞φεπεσ ΩεδΦ≈σ±≥Γε IP αΣ≡σ±εΓ.
LOGON_USER Windows NT ≤≈σ≥φα  τα∩Φ±ⁿ ∩εδⁿτεΓα≥σδ , Ωε≥ε≡√Θ τα≡σπΦ±≥≡Φ≡εΓαφ φα φσ∞.
PATH_INFO ╚φ√ε≡∞α÷Φ  ε ∩≤≥Φ, Γ ≥ε∞ ΓΦΣσ, ΩαΩ σσ ∩εδ≤≈ασ≥ ΩδΦσφ≥. ┬√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ ±Ω≡Φ∩≥, Ωε≥ε≡√Θ Φ±∩εδⁿτ≤σ≥ ΓΦ≡≥≤αδⁿφ√Θ ∩≤≥ⁿ Φ PATH_INFO ±σ≡Γσ≡α. ┼±δΦ ²≥ε Φφ⌠ε≡∞α÷Φ , ∩≡Φ°σΣ°α  Φτ URL, ≥ε εφα ΣσΩεΣΦ≡≤σ≥±  ±σ≡Γσ≡ε∞, ∩≡σµΣσ, ≈σ∞ σσ ∩εδ≤≈Φ≥ CGI ±Ω≡Φ∩≥.
PATH_TRANSLATED ╧≡σεß≡ατεΓαφφ√Θ Γα≡Φαφ≥ PATH_INFO, Ωε≥ε≡√Θ ßσ≡σ≥ ∩≤≥ⁿ Φ, ∩ε φσεß⌡εΣΦ∞ε±≥Φ, ∩≡εΦτΓεΣΦ≥±  ∩≡σεß≡ατεΓαφΦσ ΓΦ≡≥≤αδⁿφ√Θ -> ⌠ΦτΦ≈σ±ΩΦΘ.
QUERY_STRING ╤≥≡εΩα ± ∩α≡α∞σ≥≡α∞Φ, ∩σ≡σΣαΓασ∞α  Γ τα∩≡ε±σ ∩ε±δσ τφαΩα Γε∩≡ε±α (?).
REMOTE_ADDR └Σ≡σ± ≤Σαδσφφεπε ⌡ε±≥α, ∩≡εΦτΓσΣ°σπε τα∩≡ε±.
REMOTE_HOST ╚∞  ≤Σαδσφφεπ ⌡ε±≥α, ±ΣσδαΓ°σπε τα∩≡ε±. ┼±δΦ ±σ≡Γσ≡ φσ Φ∞σσ≥ ²≥εΘ Φφ⌠ε≡∞α÷ΦΦ, ≥ε ≥ε≈φε ≤±≥αφεΓΦ≥ REMOTE_ADDR, α Σαφφ≤■ Ωεφ±≥αφ≥≤ ε±≥αΓΦ≥ ∩≤±≥εΘ.
REMOTE_USER ═σ∩≡σεß≡ατεΓαφφεσ Φ∞ , ∩σ≡σΣαφφεσ ∩εδⁿτεΓα≥σδσ∞.
REQUEST_METHOD ╠σ≥εΣ, Ωε≥ε≡√Θ Φ±∩εδⁿτεΓαδ± , ≈≥εß√ ±Σσδα≥ⁿ τα∩≡ε±. ─δ  ∩≡ε≥εΩεδα HTTP ²≥ε GET, POST, HEAD.
SCRIPT_NAME ┬Φ≡≥≤αδⁿφ√Θ ∩≤≥ⁿ Ω ±Ω≡Φ∩≥≤, Ωε≥ε≡√Θ τα∩≤±Ωασ≥± . ╚±∩εδⁿτ≤σ≥±  URL.
SERVER_NAME ╚∞  ±σ≡Γσ≡α, ΩαΩ ⌡ε±≥α, DNS alias ΦδΦ IP αΣ≡σ±.
SERVER_ROOT ═ε∞σ≡ ∩ε≡≥α, ∩ε Ωε≥ε≡ε∞≤ ß√δ ∩εδ≤≈σφ τα∩≡ε±.
SERVER_PORT_SECURE ╤≥≡εΩα, ±εΣσ≡µα∙α  0 ΦδΦ 1. ┼±δΦ τα∩≡ε± εß≡αßα≥√Γασ≥±  τα∙Φ∙σφφ√∞ ∩ε≡≥ε∞, ≥ε τφα≈σφΦσ 1, Γ ∩≡ε≥ΦΓφε∞ ±δ≤≈ασ 0.
SERVER_PROTOCOL ╚∞  Φ Γσ≡±Φ  ∩≡ε≥εΩεδα τα∩≡ε±α. ╘ε≡∞α≥ - ∩≡ε≥εΩεδ/Γσ≡±Φ 
SERVER_SOFTWARE ═ατΓαφΦσ Φ Γσ≡±Φ  ∩≡επ≡α∞φεπε εß±σ±∩σ≈σφΦ , ∩εΣ Ωε≥ε≡√∞ ±≥εΦ≥ ±σ≡Γσ≡. ╘ε≡∞α≥ ±δσΣ≤■∙ΦΘ: φατΓαφΦσ/Γσ≡±Φ 
URL ╒≡αφΦ≥ ε±φεΓφ≤■ ∩ε≡÷Φ■ URL.

╟α∞σ≈αφΦσ:

┼±δΦ ΩδΦσφ≥ ∩σ≡σΣασ≥ ταπεδεΓεΩ ∩εΣ≡≤πε∞≤, φσµσδΦ ≤Ωαταφε Γ ≥αßδΦ÷σ, ≥ε Γ√ ∞εµσ≥σ ∩εδ≤≈Φ≥ⁿ σπε τφα≈σφΦσ, Φ±∩εδⁿτ≤  ∩≡σ⌠ΦΩ± HTTP_ Γ Γ√τεΓσ Request.ServerVariables. ─δ  ∩≡Φ∞σ≡α ≡α±±∞ε≥≡Φ∞ Γα≡Φαφ≥, σ±δΦ ΩδΦσφ≥ ε≥±√δασ≥ ≥αΩεΘ ταπεδεΓεΩ:

SomeNewHeader: SomeNewValue

┬√ ±∞εµσ≥σ ∩εδ≤≈Φ≥ⁿ Σαφφ√Θ ταπεδεΓεΩ, Φ±∩εδⁿτ≤  ±δσΣ≤■∙ΦΘ ±Ω≡Φ∩≥:

<% Request.ServerVariables("HTTP_SomeNewHeader") %>

α ≥αΩµσ Γ√ ∞εµσ≥σ Γε±∩εδⁿτεΓα≥±  Φτε∙≡σφφ√∞ ±Ω≡Φ∩≥ε∞, ≈≥εß√ φα∩σ≈α≥α≥ⁿ Γ±σ ±σ≡Γσ≡φ√σ ∩σ≡σ∞σφφ√σ Γ ≥αßδΦ÷≤.

<table>
<tr><td><b>╧σ≡σ∞σφφα </b></td><td><b>╟φα≈σφΦσ></b></td></tr>
<% For each name In Request.ServerVariables %>
<tr><td> <% = name %> </td><td> <% = request.ServerVariables(name) %> </td></tr>
</table>
<% Next %>

╧≡Φ∞σ≡√:

╤δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡ Σσ∞εφ±≥≡Φ≡≤σ≥ Φ±∩εδⁿτεΓαφΦσ εß·σΩ≥α Request ≈≥εß√ ∩εΩατα≥ⁿ ≡ατδΦ≈φ√σ ±σ≡Γσ≡φ√σ ∩σ≡σ∞σφφ√σ.

<HTML>
<!-- This example displays the content of several ServerVariables. -->
ALL_HTTP server variable =
<%= Request.ServerVariables("ALL_HTTP") %> <BR>
CONTENT_LENGTH server variable =
<%= Request.ServerVariables("CONTENT_LENGTH") %> <BR>
CONTENT_TYPE server variable =
<%= Request.ServerVariables("CONTENT_TYPE") %> <BR>
QUERY_STRING server variable =
<%= Request.ServerVariables("QUERY_STRING") %> <BR>
SERVER_SOFTWARE server variable =
<%= Request.ServerVariables("SERVER_SOFTWARE") %> <BR>
</HTML>

╤δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡ Φ±∩εδⁿτ≤σ≥ ΩεδδσΩ÷Φ■ ServerVariables ≈≥εß√ Γ±≥αΓΦ≥ⁿ Φ∞  ±σ≡Γσ≡α Γ πΦ∩σ≡±±√δΩ≤:

<A HREF = "http://<%= Request.ServerVariables("SERVER_NAME") %>
/scripts/MyPage.asp">Link to MyPage.asp</A>

╠σ≥εΣ Request.BinaryRead

╤Φφ≥αΩ±:

≈Φ±δσφφεσ_τφα≈σφΦσ = Request.BinaryRead (±≈σ≥≈ΦΩ)

╧α≡α∞σ≥≡√:

≈Φ±δσφφεσ_τφα≈σφΦσ
∞α±±ΦΓ ßσττφαΩεΓ√⌡ ßαΘ≥, ΓετΓ≡α∙σφφ√Θ Σαφφ√∞ ∞ε≥εΣε∞. ▌≥ε≥ ∩α≡α∞σ≥≡ ß≤Σσ≥ Φ∞σ≥ⁿ ≥Φ∩ VT_ARRAY | VT_UI1.
±≈σ≥≈ΦΩ
∩σ≡σΣ τα∩≤±Ωε∞, ≤Ωατ√Γασ≥±  ΩαΩ ∞φεπε ßαΘ≥ φ≤µφε ∩≡ε≈Φ≥α≥ⁿ ε≥ ΩδΦσφ≥α. ╧ε±δσ ²≥επε ∞σ≥εΣ ß≤Σσ≥ Γ√∩εδφσφ, ≥ε ±≈σ≥≈ΦΩ ß≤Σσ≥ ±εΣσ≡µα≥ⁿ ΩεδΦ≈σ±≥Γε ßαΘ≥, ≤Σα≈φε ±≈Φ≥αφφ√⌡ ε≥ ΩδΦσφ≥α. ╬ß∙σσ ≈Φ±δε ßαΘ≥, Ωε≥ε≡εσ ß≤Σσ≥ Γ ΣσΘ±≥ΓΦ≥σδⁿφε±≥Φ ∩≡ε≈Φ≥αφε ∞σφⁿ°σ ΦδΦ ≡αΓφε Request.TotalBytes.

╟α∞σ≈αφΦσ:

╠σ≥εΣ Request.BinaryRead Φ±∩εδⁿτ≤σ≥±  Σδ  ≈≥σφΦ  ∩ε≥εΩα Σαφφ√⌡, ∩σ≡σΣαφφ√⌡ ε≥ ΩδΦσφ≥α, ΩαΩ ≈α±≥ⁿ POST-τα∩≡ε±α. ─αφφ√Θ ∞σ≥εΣ Φ±∩εδⁿτ≤σ≥ φΦτΩε≤≡εΓφσφφ√Θ Σε±≥≤∩ Ω ²≥Φ∞ Σαφφ√∞. └, Ω ∩≡Φ∞σ≡≤, Request.Form ∩≡σΣε±≥αΓδ σ≥ Γα∞ ≥σµσ Σαφφ√σ, φε ∩≡σΣΓα≡Φ≥σδⁿφε ∩≡σεß≡ατεΓαφφ√σ Φ ≡α±±ε≡≥Φ≡εΓαφφ√σ. ┼±δΦ Γ√ Γ√τΓαδΦ Γ ±Ω≡Φ∩≥σ Request.BinaryRead Γ√ φΦΩαΩ φσ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ Γ ∩ε±δσΣ≤■∙σ∞ ∞σ≥εΣ Request.Form Σδ  ∩εδ≤≈σφΦ  Σαφφ√⌡ Φτ ⌠ε≡∞√, Γ ∩≡ε≥ΦΓφε∞ ±δ≤≈ασ ²≥ε ∩≡ΦΓσΣσ≥ Ω ε°ΦßΩσ.
└φαδεπΦ≈φε, Φ±∩εδⁿτ≤  Γ ±Ω≡Φ∩≥σ ε∩Φ±αφΦσ, ∩≡Φ±ΓαΦΓαφΦσ Φ ≥.Σ. ²δσ∞σφ≥α∞ ⌠ε≡∞√ ≈σ≡στ Request.Form Γ√ ≤µσ φσ ±∞εµσ≥σ Γε±∩εδⁿτεΓα≥ⁿ±  ∞σ≥εΣε∞ Request.BinaryRead ≥αΩ ΩαΩ ²≥ε ∩≡ΦΓσΣσ≥ Ω ε°ΦßΩσ.

╧≡Φ∞σ≡:

╤δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡ Σσ∞εφ±≥≡Φ≡≤σ≥ Φ±∩εδⁿτεΓαφΦ  ∞σ≥εΣα Request.BinaryRead Σδ  ≥επε, ≈≥εß√ τα∩Φ±α≥ⁿ ±εΣσ≡µΦ∞εσ τα∩≡ε±α Γ Γα° ∞α±±ΦΓ.

<%
Dim binread
Dim bytecount
bytecount = Request.TotalBytes
binread = Request.BinaryRead(bytecount)
%>

╤ΓεΘ±≥Γε Request.TotalBytes

─αφφεσ ±ΓεΘ±≥Γε ∩ετΓεδ σ≥ ε∩≡σΣσδΦ≥ⁿ ΩεδΦ≈σ±≥Γε ßαΘ≥, Ωε≥ε≡√σ ΩδΦσφ≥ ∩ε±√δασ≥ ±σ≡Γσ≡≤ Γ ≥σδσ τα∩≡ε±α. ─αφφεσ ±ΓεΘ±≥Γε  Γδ σ≥±  Σε±≥≤∩φ√∞ ≥εδⁿΩε Σδ  ≈≥σφΦ .

╤Φφ≥αΩ±:

±≈σ≥≈ΦΩ = Request.TotalBytes

╧α≡α∞σ≥≡√

±≈σ≥≈ΦΩ
∩α≡α∞σ≥≡ Ωε≥ε≡ε∞≤ ß≤Σσ≥ ∩≡Φ±Γεσφε τφα≈σφΦσ, ΓετΓ≡α∙σφφεσ Σαφφ√∞ ±ΓεΘ±≥Γε∞.

╧≡Φ∞σ≡:

╤δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡ ∩εΩατ√Γασ≥ ΩαΩ ∞εµφε ∩εδ≤≈Φ≥ⁿ ≡ατ∞σ≡ ΩδΦσφ≥±Ωεπε τα∩≡ε±α (Γ ßαΘ≥α⌡), ∩ε±δαφφ√⌡ ±σ≡Γσ≡≤.

<%
Dim bytecount
bytecount = Request.TotalBytes
%>

 

±εΣσ≡µαφΦσ