WebRequest.AuthenticationLevel Właściwość

Definicja

Pobiera lub ustawia wartości wskazujące poziom uwierzytelniania i personifikacji używane dla tego żądania.

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

Wartość właściwości

Bitowa kombinacja AuthenticationLevel wartości. Wartość domyślna to MutualAuthRequested.

W przypadku wzajemnego uwierzytelniania zarówno klient, jak i serwer przedstawiają poświadczenia w celu ustanowienia ich tożsamości. Wartości MutualAuthRequired i MutualAuthRequested są istotne dla uwierzytelniania Kerberos. Uwierzytelnianie Kerberos może być obsługiwane bezpośrednio lub może być używane, jeśli protokół zabezpieczeń Negotiate jest używany do wybierania rzeczywistego protokołu zabezpieczeń. Aby uzyskać więcej informacji na temat protokołów uwierzytelniania, zobacz Uwierzytelnianie internetowe.

Aby ustalić, czy wystąpiło wzajemne uwierzytelnianie, sprawdź IsMutuallyAuthenticated właściwość .

Jeśli określisz MutualAuthRequired wartość flagi uwierzytelniania i wzajemne uwierzytelnianie nie nastąpi, aplikacja otrzyma wyjątek IOExceptionProtocolViolationException wewnętrzny wskazujący, że wzajemne uwierzytelnianie nie powiodło się.

Przykłady

Poniższy przykład kodu ustawia wartość tej właściwości.

// The following example uses the System, System.Net, 
// and System.IO namespaces.
static void RequestMutualAuth( Uri^ resource )
{
   // Create a new HttpWebRequest object for the specified resource.
   WebRequest^ request = dynamic_cast<WebRequest^>(WebRequest::Create( resource ));

   // Request mutual authentication.
   request->AuthenticationLevel = AuthenticationLevel::MutualAuthRequested;

   // Supply client credentials.
   request->Credentials = CredentialCache::DefaultCredentials;
   HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse());

   // Determine whether mutual authentication was used.
   Console::WriteLine( L"Is mutually authenticated? {0}", response->IsMutuallyAuthenticated );

   // Read and display the response.
   Stream^ streamResponse = response->GetResponseStream();
   StreamReader^ streamRead = gcnew StreamReader( streamResponse );
   String^ responseString = streamRead->ReadToEnd();
   Console::WriteLine( responseString );

   // Close the stream objects.
   streamResponse->Close();
   streamRead->Close();

   // Release the HttpWebResponse.
   response->Close();
}

// The following example uses the System, System.Net,
// and System.IO namespaces.

public static void RequestMutualAuth(Uri resource)
{
    // Create a new HttpWebRequest object for the specified resource.
    WebRequest request=(WebRequest) WebRequest.Create(resource);
    // Request mutual authentication.
   request.AuthenticationLevel = AuthenticationLevel.MutualAuthRequested;
    // Supply client credentials.
    request.Credentials = CredentialCache.DefaultCredentials;
    HttpWebResponse response = (HttpWebResponse) request.GetResponse();
    // Determine whether mutual authentication was used.
    Console.WriteLine("Is mutually authenticated? {0}", response.IsMutuallyAuthenticated);
    // Read and display the response.
    Stream streamResponse = response.GetResponseStream();
    StreamReader streamRead = new StreamReader(streamResponse);
    string responseString = streamRead.ReadToEnd();
   Console.WriteLine(responseString);
    // Close the stream objects.
    streamResponse.Close();
    streamRead.Close();
    // Release the HttpWebResponse.
    response.Close();
}

Dotyczy