Freigeben über


HttpUtility-Klasse

Stellt Methoden für das Codieren und Decodieren von URLs beim Verarbeiten von Webanforderungen bereit. Diese Klasse kann nicht vererbt werden.

Namespace: System.Web
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Public NotInheritable Class HttpUtility
'Usage
Dim instance As HttpUtility
public sealed class HttpUtility
public ref class HttpUtility sealed
public final class HttpUtility
public final class HttpUtility

Hinweise

Die HttpUtility-Klasse wird intern von der HttpServerUtility-Klasse verwendet, deren Methoden und Eigenschaften über das systeminterne Server-Objekt von ASP.NET verfügbar gemacht werden. Außerdem enthält die HttpUtility-Klasse Hilfsmethoden zum Codieren und Decodieren, auf die nicht über Server zugegriffen werden kann.

Beispiel

Im folgenden Codebeispiel wird die Verwendung der HtmlEncode-Methode, der HtmlDecode-Methode und der ParseQueryString-Methode der HttpUtility-Klasse veranschaulicht.

<%@ Page Language="VB" %>

<script runat="server">

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

    Dim currurl As String = HttpContext.Current.Request.RawUrl
    Dim querystring As String = Nothing
    
    ' Check to make sure some query string variables
    ' exist and if not add some and redirect.
    Dim iqs As Int32 = currurl.IndexOf("?".ToCharArray())
    If (iqs = -1) Then
      
      Dim redirecturl As String = currurl & "?var1=1&var2=2+2%2f3&var1=3"
      Response.Redirect(redirecturl, True)
      
      ' If query string variables exist, put them in
      ' a string.
    ElseIf (iqs >= 0) Then
      
      If (iqs < currurl.Length - 1) Then
        querystring = currurl.Substring(iqs + 1)
      End If
          
    End If

    ' Parse the query string variables into a NameValueCollection.
    Dim qscoll As NameValueCollection = HttpUtility.ParseQueryString(querystring)
    
    ' Iterate through the collection.
    Dim sb As New StringBuilder()
    For Each s As String In qscoll.AllKeys
      
      sb.Append(s & " - " & qscoll(s) & "<br>")
    
    Next s
    
    ' Write the results to the appropriate labels.
    ParseOutput.Text = sb.ToString()
    UrlRawOutput.Text = currurl
    UrlEncodedOutput.Text = HttpUtility.UrlEncode(currurl)
    UrlDecodedOutput.Text = HttpUtility.UrlDecode(currurl)
   
  End Sub
  
</script>

<html>
<head id="Head1" runat="server">
    <title>HttpUtility ParseQueryString Example</title>
</head>
<body>
    <form id="Form1" runat="server">
      The raw url is: <br />
      <asp:Label  id="UrlRawOutput"
                  runat="server" />
      <br /><br />
      The url encoded is: <br />
      <asp:Label  id="UrlEncodedOutput"
                  runat="server" />
      <br /><br />
      The url decoded is: <br />
      <asp:Label  id="UrlDecodedOutput"
                  runat="server" />
      <br /><br />
      The query string NameValueCollection is: <br />
      <asp:Label  id="ParseOutput"
                  runat="server" />
    </form>
</body>
</html>
<%@ Page Language="C#"%>

<script runat="server">

  protected void Page_Load(object sender, EventArgs e)
  {
    String currurl = HttpContext.Current.Request.RawUrl;
    String querystring = null ;

    // Check to make sure some query string variables
    // exist and if not add some and redirect.
    int iqs = currurl.IndexOf('?');
    if (iqs == -1)
    {
      String redirecturl = currurl + "?var1=1&var2=2+2%2f3&var1=3";
      Response.Redirect(redirecturl, true); 
    }
    // If query string variables exist, put them in
    // a string.
    else if (iqs >= 0)
    {
      querystring = (iqs < currurl.Length - 1) ? currurl.Substring(iqs + 1) : String.Empty;
    }
   
    // Parse the query string variables into a NameValueCollection.
    NameValueCollection qscoll = HttpUtility.ParseQueryString(querystring);
    
    // Iterate through the collection.
    StringBuilder sb = new StringBuilder();
    foreach (String s in qscoll.AllKeys)
    {
      sb.Append(s + " - " + qscoll[s] + "<br>");
    }
    
    // Write the results to the appropriate labels.
    ParseOutput.Text = sb.ToString();
    UrlRawOutput.Text = currurl;
    UrlEncodedOutput.Text = HttpUtility.UrlEncode(currurl);
    UrlDecodedOutput.Text = HttpUtility.UrlDecode(currurl);
  }
</script>

<html>
<head runat="server">
    <title>HttpUtility ParseQueryString Example</title>
</head>
<body>
    <form runat="server">
      The raw url is: <br />
      <asp:Label  id="UrlRawOutput"
                  runat="server" />
      <br /><br />
      The url encoded is: <br />
      <asp:Label  id="UrlEncodedOutput"
                  runat="server" />
      <br /><br />
      The url decoded is: <br />
      <asp:Label  id="UrlDecodedOutput"
                  runat="server" />
      <br /><br />
      The query string NameValueCollection is: <br />
      <asp:Label  id="ParseOutput"
                  runat="server" />
    </form>
</body>
</html>

.NET Framework-Sicherheit

Vererbungshierarchie

System.Object
  System.Web.HttpUtility

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

HttpUtility-Member
System.Web-Namespace
HttpServerUtility-Klasse
HttpContext.Server-Eigenschaft

Weitere Ressourcen

Gewusst wie: Schutz gegen Skriptangriffe in einer Webanwendung durch Anwenden von HTML-Codierung auf Zeichenfolgen