HttpRequest Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee kunt ASP.NET de HTTP-waarden lezen die door een client worden verzonden tijdens een webaanvraag.
public ref class HttpRequest sealed
public sealed class HttpRequest
type HttpRequest = class
Public NotInheritable Class HttpRequest
- Overname
-
HttpRequest
Voorbeelden
De volgende voorbeelden hebben toegang tot het HttpRequest exemplaar voor de huidige aanvraag met behulp van de Request eigenschap van de Page klasse.
U kunt vereenvoudigde syntaxis gebruiken voor toegang tot gegevens uit de QueryString, Formof Cookiesverzamelingen ServerVariables . U kunt schrijven Request["key"].
In het eerste voorbeeld ziet u hoe u een querytekenreekswaarde ophaalt bij het laden van een pagina.
public partial class AddToCart : Page
{
protected void Page_Load(object sender, EventArgs e)
{
string rawId = Request["ProductID"];
int productId;
if (!String.IsNullOrEmpty(rawId) && int.TryParse(rawId, out productId))
{
using (ShoppingCartActions usersShoppingCart = new ShoppingCartActions())
{
usersShoppingCart.AddToCart(productId);
}
}
else
{
throw new Exception("Tried to call AddToCart.aspx without setting a ProductId.");
}
Response.Redirect("ShoppingCart.aspx");
}
}
Public Class AddToCart
Inherits Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Dim rawId = Request("ProductID")
Dim productId As Integer
If Not String.IsNullOrEmpty(rawId) And Integer.TryParse(rawId, productId) Then
Using usersShoppingCart As New ShoppingCartActions()
usersShoppingCart.AddToCart(productId)
End Using
Else
Throw New Exception("Tried to call AddToCart.aspx without setting a ProductId.")
End If
Response.Redirect("ShoppingCart.aspx")
End Sub
End Class
In het volgende voorbeeld ziet u hoe u kunt controleren of de aanvraag is geverifieerd en de onbewerkte URL ophaalt.
public partial class RestrictedPage : Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Request.IsAuthenticated)
{
var rawUrl = Request.RawUrl;
Response.Redirect("/Account/Login?ru=" + Server.HtmlEncode(rawUrl));
}
}
}
Public Class RestrictedPage
Inherits Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Request.IsAuthenticated Then
Dim rawUrl = Request.RawUrl
Response.Redirect("/Account/Login?ru=" + Server.HtmlEncode(rawUrl))
End If
End Sub
End Class
In dit voorbeeld wordt de StreamWriter klasse gebruikt om de waarden van verschillende HttpRequest klasse-eigenschappen naar een bestand te schrijven. Voor eigenschappen die van het type tekenreeks zijn, zijn de waarden HTML-gecodeerd terwijl ze naar het bestand worden geschreven. Eigenschappen die een verzameling vertegenwoordigen, worden doorlopen en elk sleutel-/waardepaar dat ze bevatten, wordt naar het bestand geschreven.
Important
Dit voorbeeld heeft een tekstvak dat gebruikersinvoer accepteert. Dit is een mogelijke beveiligingsrisico. Standaard valideren ASP.NET webpagina's dat gebruikersinvoer geen script- of HTML-elementen bevat. Zie Overzicht van Script Exploits voor meer informatie.
<%@ Page Language="C#" %>
<%@ import Namespace="System.Threading" %>
<%@ import Namespace="System.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
/* NOTE: To use this sample, create a c:\temp\CS folder,
* add the ASP.NET account (in IIS 5.x <machinename>\ASPNET,
* in IIS 6.x NETWORK SERVICE), and give it write permissions
* to the folder.*/
private const string INFO_DIR = @"c:\temp\CS\RequestDetails";
public static int requestCount;
private void Page_Load(object sender, System.EventArgs e)
{
// Create a variable to use when iterating
// through the UserLanguages property.
int langCount;
int requestNumber = Interlocked.Increment(ref requestCount);
// Create the file to contain information about the request.
string strFilePath = INFO_DIR + requestNumber.ToString() + @".txt";
StreamWriter sw = File.CreateText(strFilePath);
try
{
// <snippet2>
// Write request information to the file with HTML encoding.
sw.WriteLine(Server.HtmlEncode(DateTime.Now.ToString()));
sw.WriteLine(Server.HtmlEncode(Request.CurrentExecutionFilePath));
sw.WriteLine(Server.HtmlEncode(Request.ApplicationPath));
sw.WriteLine(Server.HtmlEncode(Request.FilePath));
sw.WriteLine(Server.HtmlEncode(Request.Path));
// </snippet2>
// <snippet3>
// Iterate through the Form collection and write
// the values to the file with HTML encoding.
// String[] formArray = Request.Form.AllKeys;
foreach (string s in Request.Form)
{
sw.WriteLine("Form: " + Server.HtmlEncode(s));
}
// </snippet3>
// <snippet4>
// Write the PathInfo property value
// or a string if it is empty.
if (Request.PathInfo == String.Empty)
{
sw.WriteLine("The PathInfo property contains no information.");
}
else
{
sw.WriteLine(Server.HtmlEncode(Request.PathInfo));
}
// </snippet4>
// <snippet5>
// Write request information to the file with HTML encoding.
sw.WriteLine(Server.HtmlEncode(Request.PhysicalApplicationPath));
sw.WriteLine(Server.HtmlEncode(Request.PhysicalPath));
sw.WriteLine(Server.HtmlEncode(Request.RawUrl));
// </snippet5>
// <snippet6>
// Write a message to the file dependent upon
// the value of the TotalBytes property.
if (Request.TotalBytes > 1000)
{
sw.WriteLine("The request is 1KB or greater");
}
else
{
sw.WriteLine("The request is less than 1KB");
}
// </snippet6>
// <snippet7>
// Write request information to the file with HTML encoding.
sw.WriteLine(Server.HtmlEncode(Request.RequestType));
sw.WriteLine(Server.HtmlEncode(Request.UserHostAddress));
sw.WriteLine(Server.HtmlEncode(Request.UserHostName));
sw.WriteLine(Server.HtmlEncode(Request.HttpMethod));
// </snippet7>
// <snippet8>
// Iterate through the UserLanguages collection and
// write its HTML encoded values to the file.
for (langCount=0; langCount < Request.UserLanguages.Length; langCount++)
{
sw.WriteLine(@"User Language " + langCount +": " + Server.HtmlEncode(Request.UserLanguages[langCount]));
}
// </snippet8>
}
finally
{
// Close the stream to the file.
sw.Close();
}
lblInfoSent.Text = "Information about this request has been sent to a file.";
}
private void btnSendInfo_Click(object sender, System.EventArgs e)
{
lblInfoSent.Text = "Hello, " + Server.HtmlEncode(txtBoxName.Text) +
". You have created a new request info file.";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<p>
</p>
<p>
Enter your name here:
<asp:TextBox id="txtBoxName" runat="server"></asp:TextBox>
</p>
<p>
<asp:Button id="btnSendInfo" onclick="btnSendInfo_Click" runat="server" Text="Click Here"></asp:Button>
</p>
<p>
<asp:Label id="lblInfoSent" runat="server"></asp:Label>
</p>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ import Namespace="System.Threading" %>
<%@ import Namespace="System.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
' NOTE: To use this sample, create a c:\temp\CS folder,
' add the ASP.NET account (in IIS 5.x <machinename>\ASPNET,
' in IIS 6.x NETWORK SERVICE), and give it write permissions
' to the folder.
Private Const INFO_DIR As String = "c:\temp\VB\RequestDetails"
Public Shared requestCount As Integer
Private Sub Page_Load(sender As Object, e As System.EventArgs)
' Create a variable to use when iterating
' through the UserLanguages property.
Dim langCount As Integer
' Create a counter to name the file.
Dim requestNumber As Integer = _
Interlocked.Increment(requestCount)
' Create the file to contain information about the request.
Dim strFilePath As String = INFO_DIR & requestNumber.ToString() & ".txt"
Dim sw As StreamWriter = File.CreateText(strFilePath)
Try
' <snippet2>
' Write request information to the file with HTML encoding.
sw.WriteLine(Server.HtmlEncode(DateTime.Now.ToString()))
sw.WriteLine(Server.HtmlEncode(Request.CurrentExecutionFilePath))
sw.WriteLine(Server.HtmlEncode(Request.ApplicationPath))
sw.WriteLine(Server.HtmlEncode(Request.FilePath))
sw.WriteLine(Server.HtmlEncode(Request.Path))
' </snippet2>
' <snippet3>
' Iterate through the Form collection and write
' the values to the file with HTML encoding.
For Each s As String In Request.Form
sw.WriteLine("Form: " & Server.HtmlEncode(s))
Next s
' </snippet3>
' <snippet4>
' Write the PathInfo property value
' or a string if it is empty.
If Request.PathInfo = String.Empty Then
sw.WriteLine("The PathInfo property contains no information.")
Else
sw.WriteLine(Server.HtmlEncode(Request.PathInfo))
End If
' </snippet4>
' <snippet5>
' Write request information to the file with HTML encoding.
sw.WriteLine(Server.HtmlEncode(Request.PhysicalApplicationPath))
sw.WriteLine(Server.HtmlEncode(Request.PhysicalPath))
sw.WriteLine(Server.HtmlEncode(Request.RawUrl))
' </snippet5>
' <snippet6>
' Write a message to the file dependent upon
' the value of the TotalBytes property.
If Request.TotalBytes > 1000 Then
sw.WriteLine("The request is 1KB or greater")
Else
sw.WriteLine("The request is less than 1KB")
End If
' </snippet6>
' <snippet7>
' Write request information to the file with HTML encoding.
sw.WriteLine(Server.HtmlEncode(Request.RequestType))
sw.WriteLine(Server.HtmlEncode(Request.UserHostAddress))
sw.WriteLine(Server.HtmlEncode(Request.UserHostName))
sw.WriteLine(Server.HtmlEncode(Request.HttpMethod))
' </snippet7>
' <snippet8>
' Iterate through the UserLanguages collection and
' write its HTML encoded values to the file.
For langCount = 0 To Request.UserLanguages.Length - 1
sw.WriteLine("User Language " & langCount.ToString() & _
": " & Server.HtmlEncode( _
Request.UserLanguages(langCount)))
Next
' </snippet8>
Finally
' Close the stream to the file.
sw.Close()
End Try
lblInfoSent.Text = _
"Information about this request has been sent to a file."
End Sub 'Page_Load
Private Sub btnSendInfo_Click(sender As Object, e As System.EventArgs)
lblInfoSent.Text = _
"Hello, " & Server.HtmlEncode(txtBoxName.Text) & _
". You have created a new request info file."
End Sub 'btnSendInfo_Click
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<p>
</p>
<p>
Enter your name here:
<asp:TextBox id="txtBoxName" runat="server"></asp:TextBox>
</p>
<p>
<asp:Button id="btnSendInfo" onclick="btnSendInfo_Click" runat="server" Text="Click Here"></asp:Button>
</p>
<p>
<asp:Label id="lblInfoSent" runat="server"></asp:Label>
</p>
</form>
</body>
</html>
Opmerkingen
De methoden en eigenschappen van de HttpRequest klasse worden weergegeven via de Request eigenschappen van de HttpApplication, HttpContexten PageUserControl klassen.
Als u toegang wilt krijgen tot gegevens uit de QueryString, Formof CookiesServerVariables verzamelingen, kunt u schrijvenRequest["key"], zoals wordt weergegeven in het voorbeeld voor de QueryString eigenschap.
Note
Unicode-ondersteuning voor HttpRequest klasseleden vereist IIS-versie 6.0 of hoger.
Constructors
| Name | Description |
|---|---|
| HttpRequest(String, String, String) |
Initialiseert een HttpRequest object. |
Eigenschappen
| Name | Description |
|---|---|
| AcceptTypes |
Hiermee haalt u een tekenreeksmatrix op van door de client ondersteunde MIME-accepttypen. |
| AnonymousID |
Hiermee wordt de anonieme id voor de gebruiker, indien aanwezig, opgevraagd. |
| ApplicationPath |
Hiermee haalt u het hoofdpad van de virtuele toepassing van de ASP.NET-toepassing op de server op. |
| AppRelativeCurrentExecutionFilePath |
Haalt het virtuele pad van de hoofdmap van de toepassing op en maakt het relatief met behulp van de tilde-notatie (~) voor de hoofdmap van de toepassing (zoals in ~/page.aspx). |
| Browser |
Hiermee haalt u informatie op over de browsermogelijkheden van de aanvragende client of stelt u deze in. |
| ClientCertificate |
Hiermee haalt u het clientbeveiligingscertificaat van de huidige aanvraag op. |
| ContentEncoding |
Hiermee haalt u de tekenset van de entiteitstekst op of stelt u deze in. |
| ContentLength |
Hiermee geeft u de lengte, in bytes, van inhoud die door de client wordt verzonden. |
| ContentType |
Hiermee haalt u het MIME-inhoudstype van de binnenkomende aanvraag op of stelt u deze in. |
| Cookies |
Hiermee haalt u een verzameling cookies op die door de klant worden verzonden. |
| CurrentExecutionFilePath |
Hiermee haalt u het virtuele pad van de huidige aanvraag op. |
| CurrentExecutionFilePathExtension |
Hiermee haalt u de extensie op van de bestandsnaam die is opgegeven in de CurrentExecutionFilePath eigenschap. |
| FilePath |
Hiermee haalt u het virtuele pad van de huidige aanvraag op. |
| Files |
Hiermee haalt u de verzameling bestanden op die door de client zijn geüpload, in mime-indeling met meerdere onderdelen. |
| Filter |
Hiermee wordt het filter opgevraagd of ingesteld dat moet worden gebruikt bij het lezen van de huidige invoerstroom. |
| Form |
Hiermee haalt u een verzameling formuliervariabelen op. |
| Headers |
Hiermee haalt u een verzameling HTTP-headers op. |
| HttpChannelBinding |
Hiermee haalt u het ChannelBinding object van het huidige HttpWorkerRequest exemplaar op. |
| HttpMethod |
Hiermee haalt u de METHODE voor HTTP-gegevensoverdracht (zoals |
| InputStream |
Hiermee wordt de inhoud van de binnenkomende HTTP-entiteitstekst opgehaald. |
| IsAuthenticated |
Hiermee wordt een waarde opgehaald die aangeeft of de aanvraag is geverifieerd. |
| IsLocal |
Hiermee wordt een waarde opgehaald die aangeeft of de aanvraag afkomstig is van de lokale computer. |
| IsSecureConnection |
Hiermee wordt een waarde opgehaald die aangeeft of de HTTP-verbinding beveiligde sockets gebruikt (dat wil zeggen HTTPS). |
| Item[String] |
Hiermee haalt u het opgegeven object op uit de QueryStringverzamelingen , Formof Cookiesde verzamelingen ServerVariables . |
| LogonUserIdentity |
Hiermee haalt u het WindowsIdentity type voor de huidige gebruiker op. |
| Params |
Hiermee haalt u een gecombineerde verzameling van QueryString, Formen CookiesServerVariablesitems op. |
| Path |
Hiermee haalt u het virtuele pad van de huidige aanvraag op. |
| PathInfo |
Hiermee haalt u de aanvullende padinformatie voor een resource op met een URL-extensie. |
| PhysicalApplicationPath |
Hiermee haalt u het pad van het fysieke bestandssysteem op van de hoofdmap van de servertoepassing die momenteel wordt uitgevoerd. |
| PhysicalPath |
Hiermee haalt u het pad van het fysieke bestandssysteem op dat overeenkomt met de aangevraagde URL. |
| QueryString |
Hiermee haalt u de verzameling HTTP-queryreeksvariabelen op. |
| RawUrl |
Hiermee haalt u de onbewerkte URL van de huidige aanvraag op. |
| ReadEntityBodyMode |
Hiermee wordt een waarde opgehaald die aangeeft of de hoofdtekst van de aanvraagentiteit is gelezen en zo ja, hoe deze is gelezen. |
| RequestContext |
Hiermee haalt u het RequestContext exemplaar van de huidige aanvraag op. |
| RequestType |
Hiermee haalt u de HTTP-gegevensoverdrachtsmethode ( |
| ServerVariables |
Hiermee haalt u een verzameling webservervariabelen op. |
| TimedOutToken |
Hiermee wordt een CancellationToken object opgehaald dat wordt verzonden wanneer er een time-out optreedt voor een aanvraag. |
| TlsTokenBindingInfo |
Hiermee haalt u de bindingsgegevens van het TLS-token op. Met de eigenschap kunnen toepassingen tokengegevens ophalen uit binnenkomende HTTP-aanvragen voor verbeterde verificatie. |
| TotalBytes |
Hiermee haalt u het aantal bytes op in de huidige invoerstroom. |
| Unvalidated |
Haalt de HTTP-aanvraagwaarden op zonder aanvraagvalidatie te activeren. |
| Url |
Haalt informatie op over de URL van de huidige aanvraag. |
| UrlReferrer |
Haalt informatie op over de URL van de vorige aanvraag van de client die is gekoppeld aan de huidige URL. |
| UserAgent |
Hiermee haalt u de onbewerkte gebruikersagenttekenreeks op van de clientbrowser die is opgegeven. Houd er rekening mee dat het mogelijk null is. |
| UserHostAddress |
Hiermee haalt u het IP-hostadres van de externe client op. |
| UserHostName |
Hiermee haalt u de DNS-naam van de externe client op. |
| UserLanguages |
Hiermee haalt u een gesorteerde tekenreeksmatrix op van voorkeuren voor clienttaal. |
Methoden
| Name | Description |
|---|---|
| Abort() |
Hiermee wordt de onderliggende TCP-verbinding geforceerd beëindigd, waardoor elke openstaande I/O mislukt. U kunt deze methode gebruiken als reactie op een aanval door een schadelijke HTTP-client. |
| BinaryRead(Int32) |
Voert een binaire leesbewerking uit van een opgegeven aantal bytes uit de huidige invoerstroom. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetBufferedInputStream() |
Hiermee haalt u een Stream object op dat kan worden gebruikt om de binnenkomende HTTP-entiteitstekst te lezen. |
| GetBufferlessInputStream() |
Hiermee haalt u een Stream object op dat kan worden gebruikt om de binnenkomende HTTP-entiteitstekst te lezen. |
| GetBufferlessInputStream(Boolean) |
Hiermee haalt u een Stream object op dat kan worden gebruikt voor het lezen van de binnenkomende HTTP-entiteitstekst, eventueel het uitschakelen van de limiet voor de aanvraaglengte die is ingesteld in de MaxRequestLength eigenschap. |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| InsertEntityBody() |
Biedt IIS een kopie van de hoofdtekst van de HTTP-aanvraagentiteit. |
| InsertEntityBody(Byte[], Int32, Int32) |
Biedt IIS een kopie van de hoofdtekst van de HTTP-aanvraagentiteit en met informatie over het object van de aanvraagentiteit. |
| MapImageCoordinates(String) |
Hiermee wijst u een formulierparameter voor binnenkomende afbeeldingsvelden toe aan de juiste x-coördinaat- en y-coördinaatwaarden. |
| MapPath(String, String, Boolean) |
Hiermee wordt het opgegeven virtuele pad toegewezen aan een fysiek pad. |
| MapPath(String) |
Hiermee wordt het opgegeven virtuele pad toegewezen aan een fysiek pad. |
| MapRawImageCoordinates(String) |
Hiermee wordt een formulierparameter voor binnenkomende afbeeldingsvelden toegewezen aan de juiste x- en y-coördinaatwaarden. |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| SaveAs(String, Boolean) |
Slaat een HTTP-aanvraag op schijf op. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
| ValidateInput() |
Zorgt ervoor dat validatie plaatsvindt voor de verzamelingen die worden geopend via de Cookies, Formen QueryString eigenschappen. |