WebClientProtocol 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
ASP.NET 사용하여 만든 모든 XML 웹 서비스 클라이언트 프록시에 대한 기본 클래스를 지정합니다.
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
- 상속
- 파생
- 특성
예제
다음 예제는 명명 Math된 XML 웹 서비스를 호출하는 ASP.NET Web Form입니다.
EnterBtn_Click 함수 내에서 웹 양식은 원격 XML 웹 서비스 메서드를 호출하기 전에 프록시 클래스에 프록시 정보 및 클라이언트 자격 증명을 설정합니다.
중요합니다
이 예제에는 잠재적인 보안 위협인 사용자 입력을 허용하는 텍스트 상자가 있습니다. 기본적으로 ASP.NET 웹 페이지는 사용자 입력에 스크립트 또는 HTML 요소가 포함되지 않는지 확인합니다. 자세한 내용은 스크립트 악용 개요를 참조하세요.
<%@ 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>
설명
클래스의 WebClientProtocol 속성은 XML 웹 서비스 요청 및 응답을 전송하는 데 사용되는 전송의 동작을 제어하는 데 사용됩니다. 이 클래스의 속성은 에 있는 속성에 매핑됩니다 WebRequest. 파생되는 WebRequest클래스의 인스턴스(예: HttpWebRequest)는 ASP.NET 사용하여 만든 XML 웹 서비스의 전송 메커니즘으로 사용됩니다.
XML 웹 서비스와 통신하려면 호출하려는 XML 웹 서비스에 대해 간접 또는 직접 WebClientProtocol 파생되는 프록시 클래스를 만들어야 합니다. 프록시 클래스를 수동으로 만드는 대신 Wsdl.exe 도구를 사용하여 지정된 XML 웹 서비스의 서비스 설명에 대한 프록시 클래스를 만들 수 있습니다. WebClientProtocol 클라이언트 프록시의 기본 클래스이므로 프록시 클래스에서 해당 속성을 찾을 수 있습니다. 이러한 속성은 기본 전송의 요청 동작을 제어하는 데 유용합니다. 예를 들어 인증된 XML 웹 서비스를 호출하는 데 이 속성을 사용합니다 Credentials . WebClientProtocol 대부분의 속성은 웹 요청을 만드는 데 사용되는 개체를 WebRequest 초기화하는 데 사용됩니다.
생성자
| Name | Description |
|---|---|
| WebClientProtocol() |
WebClientProtocol 클래스의 새 인스턴스를 초기화합니다. |
속성
| Name | Description |
|---|---|
| CanRaiseEvents |
구성 요소가 이벤트를 발생시키는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Component) |
| ConnectionGroupName |
요청에 대한 연결 그룹의 이름을 가져오거나 설정합니다. |
| Container |
를 IContainer 포함하는 값을 가져옵니다 Component. (다음에서 상속됨 Component) |
| Credentials |
XML 웹 서비스 클라이언트 인증에 대한 보안 자격 증명을 가져오거나 설정합니다. |
| DesignMode |
현재 디자인 모드인지 여부를 Component 나타내는 값을 가져옵니다. (다음에서 상속됨 Component) |
| Events |
이 Component에 연결된 이벤트 처리기 목록을 가져옵니다. (다음에서 상속됨 Component) |
| PreAuthenticate |
사전 인증을 사용할 수 있는지 여부를 가져오거나 설정합니다. |
| RequestEncoding |
Encoding XML 웹 서비스에 대한 클라이언트 요청을 만드는 데 사용됩니다. |
| Site |
의 ISite값을 Component 가져오거나 설정합니다. (다음에서 상속됨 Component) |
| Timeout |
XML 웹 서비스 클라이언트가 동기 XML 웹 서비스 요청에 대한 회신이 도착할 때까지 대기하는 시간을 나타냅니다(밀리초). |
| Url |
클라이언트가 요청하는 XML 웹 서비스의 기본 URL을 가져오거나 설정합니다. |
| UseDefaultCredentials |
속성을 속성 값으로 설정할 Credentials 지 여부를 나타내는 값을 DefaultCredentials 가져오거나 설정합니다. |
메서드
| Name | Description |
|---|---|
| Abort() |
XML 웹 서비스 메서드에 대한 요청을 취소합니다. |
| AddToCache(Type, Object) |
캐시에 클라이언트 프로토콜 처리기의 인스턴스를 추가합니다. |
| CreateObjRef(Type) |
원격 개체와 통신하는 데 사용되는 프록시를 생성하는 데 필요한 모든 관련 정보를 포함하는 개체를 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
| Dispose() |
에서 사용하는 모든 리소스를 Component해제합니다. (다음에서 상속됨 Component) |
| Dispose(Boolean) |
관리되지 않는 리소스를 Component 해제하고 관리되는 리소스를 선택적으로 해제합니다. (다음에서 상속됨 Component) |
| Equals(Object) |
지정된 개체가 현재 개체와 같은지 여부를 확인합니다. (다음에서 상속됨 Object) |
| GetFromCache(Type) |
캐시에서 클라이언트 프로토콜 처리기의 인스턴스를 가져옵니다. |
| GetHashCode() |
기본 해시 함수로 사용됩니다. (다음에서 상속됨 Object) |
| GetLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 현재 수명 서비스 개체를 검색합니다. (다음에서 상속됨 MarshalByRefObject) |
| GetService(Type) |
또는 해당 서비스에서 제공하는 서비스를 나타내는 개체를 Component 반환합니다 Container. (다음에서 상속됨 Component) |
| GetType() |
현재 인스턴스의 Type 가져옵니다. (다음에서 상속됨 Object) |
| GetWebRequest(Uri) |
지정된 |
| GetWebResponse(WebRequest, IAsyncResult) |
XML 웹 서비스 메서드에 대한 비동기 요청의 응답을 반환합니다. 이 보호된 메서드는 비동기 XML 웹 서비스 요청에서 응답을 가져오기 위해 XML 웹 서비스 클라이언트 인프라에 의해 호출됩니다. |
| GetWebResponse(WebRequest) |
XML 웹 서비스 메서드에 대한 동기 요청의 응답을 반환합니다. |
| InitializeLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다. (다음에서 상속됨 MarshalByRefObject) |
| MemberwiseClone() |
현재 Object단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
| MemberwiseClone(Boolean) |
현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
| ToString() |
String(있는 경우)의 Component이름을 포함하는 값을 반환합니다. 이 메서드는 재정의해서는 안 됩니다. (다음에서 상속됨 Component) |
이벤트
| Name | Description |
|---|---|
| Disposed |
구성 요소가 메서드 호출에 Dispose() 의해 삭제될 때 발생합니다. (다음에서 상속됨 Component) |
적용 대상
스레드 보안
이 클래스의 속성은 각 XML 웹 서비스 메서드 호출에 대한 개체의 WebRequest 새 인스턴스로 복사됩니다. 동일한 인스턴스에서 여러 스레드에서 XML WebClientProtocol 웹 서비스 메서드를 동시에 호출할 수 있지만 속성의 일관된 스냅샷이 개체로 전송되도록 하기 위한 WebRequest 동기화는 수행되지 않습니다. 따라서 속성을 수정하고 다른 스레드에서 동시 메서드를 호출해야 하는 경우 XML 웹 서비스 프록시의 다른 인스턴스를 사용하거나 고유한 동기화를 제공해야 합니다.