WebRequest.PreAuthenticate Property

When overridden in a descendant class, indicates whether to pre-authenticate the request.

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

public virtual bool PreAuthenticate { get; set; }
/** @property */
public boolean get_PreAuthenticate ()

/** @property */
public void set_PreAuthenticate (boolean value)

public function get PreAuthenticate () : boolean

public function set PreAuthenticate (value : boolean)

Property Value

true to pre-authenticate; otherwise, false.

Exception typeCondition


Any attempt is made to get or set the property, when the property is not overridden in a descendant class.

With the exception of the first request, the PreAuthenticate property indicates whether to send authentication information with subsequent requests without waiting to be challenged by the server. When PreAuthenticate is false, the WebRequest waits for an authentication challenge before sending authentication information.


The WebRequest class is an abstract class. The actual behavior of WebRequest instances at run time is determined by the descendant class returned by the System.Net.WebRequest.Create method. For more information about default values and exceptions, see the documentation for the descendant classes, such as HttpWebRequest and FileWebRequest.

The following example sets the PreAuthenticate property to true so that the NetworkCredential stored in the Credentials property will be sent to along with the resource request.

         // Create a new webrequest to the mentioned URL.
WebRequest myWebRequest=WebRequest.Create(url);

// Set 'Preauthenticate'  property to true.  Credentials will be sent with the request.

Console.WriteLine("\nPlease Enter ur credentials for the requested Url");
string UserName=Console.ReadLine();
string Password=Console.ReadLine();

// Create a New 'NetworkCredential' object.
NetworkCredential networkCredential=new NetworkCredential(UserName,Password);

// Associate the 'NetworkCredential' object with the 'WebRequest' object.

// Assign the response object of 'WebRequest' to a 'WebResponse' variable.
WebResponse myWebResponse=myWebRequest.GetResponse();

// Create a new webrequest to the mentioned URL.
WebRequest myWebRequest = WebRequest.Create(url);
// Set 'Preauthenticate'  property to true.  
// Credentials will be sent with the request.

Console.WriteLine("\nPlease Enter ur credentials for" 
    + " the requested Url");
String userName = Console.ReadLine();
String password = Console.ReadLine();
// Create a New 'NetworkCredential' object.
NetworkCredential networkCredential = new NetworkCredential(
    userName, password);
// Associate the 'NetworkCredential' object with the 'WebRequest'
// object.
// Assign the response object of 'WebRequest' to a 'WebResponse'
// variable.
WebResponse myWebResponse = myWebRequest.GetResponse();

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0