다음을 통해 공유


WindowsClientCredential.AllowedImpersonationLevel 속성

정의

허용되는 가장 수준을 가져오거나 설정합니다.

public:
 property System::Security::Principal::TokenImpersonationLevel AllowedImpersonationLevel { System::Security::Principal::TokenImpersonationLevel get(); void set(System::Security::Principal::TokenImpersonationLevel value); };
public System.Security.Principal.TokenImpersonationLevel AllowedImpersonationLevel { get; set; }
member this.AllowedImpersonationLevel : System.Security.Principal.TokenImpersonationLevel with get, set
Public Property AllowedImpersonationLevel As TokenImpersonationLevel

속성 값

TokenImpersonationLevel

TokenImpersonationLevel 값 중 하나입니다.

예제

다음 예제에서는 이 속성을 설정하는 방법을 보여 줍니다.

// Create a service host.
EndpointAddress ea = new EndpointAddress("http://localhost/Calculator");
WSHttpBinding b = new WSHttpBinding(SecurityMode.Message);
b.Security.Message.ClientCredentialType = MessageCredentialType.Windows;

// Create a client. The code is not shown here. See the WCF samples
// for an example of the CalculatorClient code.

CalculatorClient cc = new CalculatorClient(b, ea);
// Get a reference to the Windows client credential object.
WindowsClientCredential winCred= cc.ClientCredentials.Windows;
Console.WriteLine("AllowedImpersonationLevel: {0}",
    winCred.AllowedImpersonationLevel);
Console.WriteLine("AllowNtlm: {0}", winCred.AllowNtlm);
Console.WriteLine("Domain: {0}", winCred.ClientCredential.Domain);

Console.ReadLine();
// Change the AllowedImpersonationLevel.
winCred.AllowedImpersonationLevel =
    System.Security.Principal.TokenImpersonationLevel.Impersonation;

Console.WriteLine("Changed AllowedImpersonationLevel: {0}",
    winCred.AllowedImpersonationLevel);
Console.ReadLine();
// Open the calculator and use it.
//cc.Open();
//Console.WriteLine(cc.Add(11, 11));

//// Close the client.
//cc.Close();
' Create a service host.
Dim ea As New EndpointAddress("http://localhost/Calculator")
Dim b As New WSHttpBinding(SecurityMode.Message)
b.Security.Message.ClientCredentialType = _
MessageCredentialType.Windows

' Create a client. The code is not shown here. See the WCF samples
' for an example of the CalculatorClient code.
Dim cc As New CalculatorClient(b, ea)
' Get a reference to the Windows client credential object.
Dim winCred As WindowsClientCredential = cc.ClientCredentials.Windows
Console.WriteLine("AllowedImpersonationLevel: {0}", _
                 winCred.AllowedImpersonationLevel)
Console.WriteLine("AllowNtlm: {0}", winCred.AllowNtlm)
Console.WriteLine("Domain: {0}", winCred.ClientCredential.Domain)

Console.ReadLine()
' Change the AllowedImpersonationLevel.
winCred.AllowedImpersonationLevel = _
System.Security.Principal.TokenImpersonationLevel.Impersonation

Console.WriteLine("Changed AllowedImpersonationLevel: {0}", _
winCred.AllowedImpersonationLevel)
Console.ReadLine()
' Open the calculator and use it.
' cc.Open()
' Console.WriteLine(cc.Add(11, 11))
' Close the client.
' cc.Close()

설명

이 속성은 Windows SSPI 협상 인증을 사용할 때 클라이언트가 서버에 부여한 가장 수준을 지정합니다. 서버가 클라이언트 토큰을 가장할 때 얻은 가장 수준은 이 설정의 기능만이 아닙니다. 또한 서비스가 실행 중인 계정에 대한 연결된 권한 및 도메인 설정의 기능이기도 합니다.

클라이언트는 이 속성을 사용하여 허용되는 가장 수준을 명시적으로 설정해야 합니다.

클라이언트가 익명 가장을 지정하는 경우 클라이언트는 서비스에서 가장이 수행되지 않는 경우에도 항상 익명으로 서비스에 인증합니다. 이는 기본 Windows 운영 체제 동작 때문입니다.

Windows 가장에 대한 자세한 내용은 가장 및 되돌리기를 참조하세요. Windows Communication Foundation을 사용하는 가장에 대한 자세한 내용은 위임 및 가장을 참조하세요.

적용 대상