WebClientProtocol Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt die Basisklasse für alle XML-Webdienstclientproxys an, die mit ASP.NET erstellt wurden.
public ref class WebClientProtocol abstract : System::ComponentModel::Component
public abstract class WebClientProtocol : System.ComponentModel.Component
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class WebClientProtocol : System.ComponentModel.Component
type WebClientProtocol = class
inherit Component
[<System.Runtime.InteropServices.ComVisible(true)>]
type WebClientProtocol = class
inherit Component
Public MustInherit Class WebClientProtocol
Inherits Component
- Vererbung
- Abgeleitet
- Attribute
Beispiele
Das folgende Beispiel ist ein ASP.NET Webformular, das einen XML-Webdienst mit dem Namen Mathaufruft. Innerhalb der EnterBtn_Click Funktion legt das Webformular Proxyinformationen und Clientanmeldeinformationen für die Proxyklasse fest, bevor die Remote-XML-Webdienstmethode aufgerufen wird.
Von Bedeutung
In diesem Beispiel handelt es sich um ein Textfeld, das Benutzereingaben akzeptiert, bei denen es sich um eine potenzielle Sicherheitsrisiken handelt. Standardmäßig überprüfen ASP.NET Webseiten, dass die Benutzereingabe keine Skript- oder HTML-Elemente enthält. Weitere Informationen finden Sie unter Script Exploits Overview.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Net" %>
<html>
<script language="C#" runat="server">
void EnterBtn_Click(Object Src, EventArgs E)
{
MyMath.Math math = new MyMath.Math();
// Set the client-side credentials using the Credentials property.
ICredentials credentials = new NetworkCredential("Joe","mydomain","password");
math.Credentials = credentials;
// Do not allow the server to redirect the request.
math.AllowAutoRedirect = false;
int total = math.Add(Convert.ToInt32(Num1.Text), Convert.ToInt32(Num2.Text));
Total.Text = "Total: " + total.ToString();
}
</script>
<body>
<form action="MathClient.aspx" runat=server>
Enter the two numbers you want to add and then press the Total button.
<p>
Number 1: <asp:textbox id="Num1" runat=server/> +
Number 2: <asp:textbox id="Num2" runat=server/> =
<asp:button text="Total" Onclick="EnterBtn_Click" runat=server/>
<p>
<asp:label id="Total" runat=server/>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Net" %>
<html>
<script language="VB" runat="server">
Sub EnterBtn_Click(src As Object, e As EventArgs)
Dim math As New MyMath.Math()
' Set the client-side credentials using the Credentials property.
Dim credentials As New NetworkCredential("Joe", "password", "mydomain")
math.Credentials = credentials
' Do not allow the server to redirect the request.
math.AllowAutoRedirect = False
Dim iTotal As Integer = math.Add(Convert.ToInt32(Num1.Text), Convert.ToInt32(Num2.Text))
Total.Text = "Total: " & iTotal.ToString()
End Sub
</script>
<body>
<form action="MathClient.aspx" runat=server>
Enter the two numbers you want to add and then press the Total button.
<p>
Number 1: <asp:textbox id="Num1" runat=server/> +
Number 2: <asp:textbox id="Num2" runat=server/> =
<asp:button text="Total" Onclick="EnterBtn_Click" runat=server/>
<p>
<asp:label id="Total" runat=server/>
</form>
</body>
</html>
Hinweise
Die Eigenschaften der WebClientProtocol Klasse werden verwendet, um das Verhalten des Transports zu steuern, der zum Übertragen der XML-Webdienstanforderung und -antwort verwendet wird. Die Eigenschaften dieser Klassenzuordnung zu Eigenschaften, die in WebRequest. Instanzen von Klassen, die von WebRequest, z HttpWebRequest. B. , abgeleitet werden, werden als Transportmechanismus für XML-Webdienste verwendet, die mit ASP.NET erstellt wurden.
Um mit einem XML-Webdienst zu kommunizieren, müssen Sie eine Proxyklasse erstellen, die indirekt oder direkt vom XML-Webdienst abgeleitet wird, den WebClientProtocol Sie aufrufen möchten. Anstatt die Proxyklasse manuell zu erstellen, können Sie das Wsdl.exe Tool verwenden, um eine Proxyklasse für die Dienstbeschreibung eines bestimmten XML-Webdiensts zu erstellen. Da WebClientProtocol es sich um die Basisklasse für Ihren Clientproxy handelt, finden Sie dessen Eigenschaften in Ihren Proxyklassen. Diese Eigenschaften sind nützlich, um das Anforderungsverhalten des zugrunde liegenden Transports zu steuern. Verwenden Sie beispielsweise die Credentials Eigenschaft zum Aufrufen authentifizierter XML-Webdienste. Viele der WebClientProtocol Eigenschaften werden verwendet, um das WebRequest Objekt zu initialisieren, das zum Erstellen der Webanforderung verwendet wird.
Konstruktoren
| Name | Beschreibung |
|---|---|
| WebClientProtocol() |
Initialisiert eine neue Instanz der WebClientProtocol-Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| CanRaiseEvents |
Ruft einen Wert ab, der angibt, ob die Komponente ein Ereignis auslösen kann. (Geerbt von Component) |
| ConnectionGroupName |
Dient zum Abrufen oder Festlegen des Namens der Verbindungsgruppe für die Anforderung. |
| Container |
Ruft das, das IContainer die Component. (Geerbt von Component) |
| Credentials |
Ruft Sicherheitsanmeldeinformationen für die XML-Webdienstclientauthentifizierung ab oder legt diese fest. |
| DesignMode |
Ruft einen Wert ab, der angibt, ob sich der Component Entwurfsmodus derzeit befindet. (Geerbt von Component) |
| Events |
Ruft die Liste der Ereignishandler ab, die an diese Componentangefügt sind. (Geerbt von Component) |
| PreAuthenticate |
Ruft ab oder legt fest, ob die Vorauthentifizierung aktiviert ist. |
| RequestEncoding |
Wird Encoding verwendet, um die Clientanforderung an den XML-Webdienst zu senden. |
| Site |
Dient zum ISite Abrufen oder Festlegen des Werts des Component. (Geerbt von Component) |
| Timeout |
Gibt an, wie lange ein XML-Webdienstclient auf die Antwort auf eine synchrone XML-Webdienstanforderung wartet (in Millisekunden). |
| Url |
Ruft die Basis-URL des XML-Webdiensts ab, den der Client anfordert, oder legt diese fest. |
| UseDefaultCredentials |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Credentials Eigenschaft auf den Wert der DefaultCredentials Eigenschaft festgelegt werden soll. |
Methoden
| Name | Beschreibung |
|---|---|
| Abort() |
Bricht eine Anforderung an eine XML-Webdienstmethode ab. |
| AddToCache(Type, Object) |
Fügen Sie dem Cache eine Instanz des Clientprotokollhandlers hinzu. |
| CreateObjRef(Type) |
Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird. (Geerbt von MarshalByRefObject) |
| Dispose() |
Veröffentlicht alle ressourcen, die von der Component. (Geerbt von Component) |
| Dispose(Boolean) |
Gibt die nicht verwalteten Ressourcen frei, die von den Component verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei. (Geerbt von Component) |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetFromCache(Type) |
Ruft eine Instanz eines Clientprotokollhandlers aus dem Cache ab. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetLifetimeService() |
Veraltet.
Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinie für diese Instanz steuert. (Geerbt von MarshalByRefObject) |
| GetService(Type) |
Gibt ein Objekt zurück, das einen Dienst darstellt, der von der Component oder dem zugehörigen ContainerDienst bereitgestellt wird. (Geerbt von Component) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| GetWebRequest(Uri) |
Erstellt eine WebRequest Instanz für die angegebene |
| GetWebResponse(WebRequest, IAsyncResult) |
Gibt eine Antwort von einer asynchronen Anforderung an eine XML-Webdienstmethode zurück. Diese geschützte Methode wird von der XML-Webdienstclientinfrastruktur aufgerufen, um die Antwort von einer asynchronen XML-Webdienstanforderung abzurufen. |
| GetWebResponse(WebRequest) |
Gibt eine Antwort von einer synchronen Anforderung an eine XML-Webdienstmethode zurück. |
| InitializeLifetimeService() |
Veraltet.
Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern. (Geerbt von MarshalByRefObject) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| MemberwiseClone(Boolean) |
Erstellt eine flache Kopie des aktuellen MarshalByRefObject Objekts. (Geerbt von MarshalByRefObject) |
| ToString() |
Gibt einen String mit dem Namen des Component, falls vorhanden, zurück. Diese Methode sollte nicht außer Kraft gesetzt werden. (Geerbt von Component) |
Ereignisse
| Name | Beschreibung |
|---|---|
| Disposed |
Tritt auf, wenn die Komponente durch einen Aufruf der Dispose() Methode verworfen wird. (Geerbt von Component) |
Gilt für:
Threadsicherheit
Die Eigenschaften dieser Klasse werden in eine neue Instanz eines WebRequest Objekts für jeden XML-Webdienstmethodenaufruf kopiert. Sie können zwar XML-Webdienstmethoden für dieselbe WebClientProtocol Instanz aus verschiedenen Threads gleichzeitig aufrufen, es ist jedoch keine Synchronisierung erfolgt, um sicherzustellen, dass eine konsistente Momentaufnahme der Eigenschaften an das WebRequest Objekt übertragen wird. Wenn Sie daher die Eigenschaften ändern und gleichzeitige Methodenaufrufe aus verschiedenen Threads ausführen müssen, sollten Sie eine andere Instanz des XML-Webdienstproxys verwenden oder eine eigene Synchronisierung bereitstellen.