AuthenticationLevel Enumeration

AuthenticationLevel Enumeration


Specifies client requirements for authentication and impersonation when using the WebRequest class and derived classes to request a resource.

Namespace:   System.Net.Security
Assembly:  System (in System.dll)

public enum AuthenticationLevel

Member nameDescription

The client and server should be authenticated. The request does not fail if the server is not authenticated. To determine whether mutual authentication occurred, check the value of the WebResponse.IsMutuallyAuthenticated property.


The client and server should be authenticated. If the server is not authenticated, your application will receive an IOException with a ProtocolViolationException inner exception that indicates that mutual authentication failed


No authentication is required for the client and server.

The values of this enumeration are used to set the AuthenticationLevel property.


The MutualAuthRequired and MutualAuthRequested values are relevant for Kerberos authentication. Kerberos authentication can be supported directly, or can be used if the Negotiate security protocol is used to select the actual security protocol. For more information about authentication protocols, see Internet Authentication.

The following code example demonstrates setting the authentication flags for a request.

// 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();
    // Close the stream objects.
    // Release the HttpWebResponse.

Universal Windows Platform
Available since 10
.NET Framework
Available since 2.0
Return to top
© 2015 Microsoft