Skip to main content
HttpChallengeHeaderValueCollection class

Represents the value of the Proxy-Authenticate or WWW-Authenticate HTTP header on an HTTP response.


var httpChallengeHeaderValueCollection = wwwAuthenticate;

public sealed class HttpChallengeHeaderValueCollection : IList<HttpChallengeHeaderValue>,

Public NotInheritable Class HttpChallengeHeaderValueCollection
    Implements IList(Of HttpChallengeHeaderValue), _
    IEnumerable(Of HttpChallengeHeaderValue), _

public ref class HttpChallengeHeaderValueCollection sealed : IVector<HttpChallengeHeaderValue>,


The HttpChallengeHeaderValueCollection class has these types of members:


The HttpChallengeHeaderValueCollection class has these methods. With C#, Visual Basic, and C++, it also inherits methods from the Object class.

Add [C#, VB]Adds a new item to the end of the collection.
Append [C++, JavaScript]Adds a new HttpChallengeHeaderValue item to the end of the collection.
Clear Removes all HttpChallengeHeaderValue objects from the collection.
Contains [C#, VB]Determines whether an element is in the collection.
CopyTo [C#, VB]Copies the elements of the collection to an array, starting at a particular array index in the destination array.
First [C++, JavaScript]Retrieves an iterator to the first HttpChallengeHeaderValue item in the collection.
GetAt [C++, JavaScript]Returns the HttpChallengeHeaderValue at the specified index in the collection.
GetMany [C++, JavaScript]Retrieves the HttpChallengeHeaderValue items that start at the specified index in the collection.
GetView [C++, JavaScript]Returns an immutable view of the HttpChallengeHeaderValueCollection.
IndexOf [C++, JavaScript]Retrieves the index of an HttpChallengeHeaderValue in the collection.
IndexOf [C#, VB]Determines the index of a specific item in the collection.
Insert [C#, VB]Inserts an item into the collection at the specified index.
InsertAt [C++, JavaScript]Inserts an HttpChallengeHeaderValue into the collection at the specified index.
ParseAdd Parses and adds an entry to the HttpChallengeHeaderValueCollection.
Remove [C#, VB]Removes a specific object from the collection.
RemoveAt [C++, JavaScript]Removes the entry at the specified index from the HttpChallengeHeaderValueCollection.
RemoveAt [C#, VB]Removes the element at the specified index of the collection.
RemoveAtEnd [C++, JavaScript]Removes the last HttpChallengeHeaderValue item from the collection.
ReplaceAll [C++, JavaScript]Replaces all the HttpChallengeHeaderValue items in the collection with the specified HttpChallengeHeaderValue items.
SetAt [C++, JavaScript]Sets the HttpChallengeHeaderValue at the specified index in the collection.
ToString Returns a string that represents the current HttpChallengeHeaderValueCollection object.
TryParseAdd Tries to parse and add the specified item to the HttpChallengeHeaderValueCollection.



The HttpChallengeHeaderValueCollection class has these properties.

PropertyAccess typeDescription

Count [C#, VB]


Gets the number of elements that are contained in the collection.

IsReadOnly [C#, VB]


Gets a value indicating whether the collection is read-only.

Item [C#, VB]


Gets or sets the element at the specified index.

Size [C++, JavaScript]


Gets the number of HttpChallengeHeaderValue objects in the collection.



The HttpChallengeHeaderValueCollection represents the value of the Proxy-Authenticate or WWW-Authenticate HTTP header on an HTTP response.

The HttpChallengeHeaderValueCollection provides a collection container for instances of the HttpChallengeHeaderValue class used for authentication information used in the Authorization, ProxyAuthorization, WWW-Authenticate, and Proxy-Authenticate HTTP header values.

The ProxyAuthenticate property on HttpResponseHeaderCollection returns an HttpChallengeHeaderValueCollection object. The WwwAuthenticate property on HttpResponseHeaderCollection also returns an HttpChallengeHeaderValueCollection object.

Collection member lists

For JavaScript, HttpChallengeHeaderValueCollection has the members shown in the member lists. In addition, HttpChallengeHeaderValueCollection supports members of Array.prototype and using an index to access items.

Enumerating the collection in C# or Microsoft Visual Basic

You can iterate through an HttpChallengeHeaderValueCollection object in C# or Microsoft Visual Basic. In many cases, such as using foreach syntax, the compiler does this casting for you and you won't need to cast to IEnumerable<HttpChallengeHeaderValue> explicitly. If you do need to cast explicitly, for example if you want to call GetEnumerator, cast the collection object to IEnumerable<T> with an HttpChallengeHeaderValue constraint.


The following sample code shows a method to get and set the Proxy-Authenticate HTTP header on an HttpResponseMessage object using the properties and methods on the HttpChallengeHeaderValueCollection and HttpChallengeHeaderValue classes.

using System;
using Windows.Web.Http;
using Windows.Web.Http.Headers;

        public void DemonstrateHeaderResponseProxyAuthenticate() {
            var response = new HttpResponseMessage();

            // Set the header with a strong type.
            response.Headers.ProxyAuthenticate.Add(new HttpChallengeHeaderValue("authScheme", "authToken"));

            // Get the strong type out
            foreach (var value in response.Headers.ProxyAuthenticate) {
                System.Diagnostics.Debug.WriteLine("Proxy authenticate scheme and token: {0} {1}", value.Scheme, value.Token);

            // The ToString() is useful for diagnostics, too.
            System.Diagnostics.Debug.WriteLine("The ProxyAuthenticate ToString() results: {0}", response.Headers.ProxyAuthenticate.ToString());

Requirements (Windows 10 device family)

Device family

Universal, introduced version 10.0.10240.0

API contract

Windows.Foundation.UniversalApiContract, introduced version 1.0


Windows::Web::Http::Headers [C++]



Requirements (Windows 8.x and Windows Phone 8.x)

Minimum supported client

Windows 8.1 [Windows Store apps, desktop apps]

Minimum supported server

Windows Server 2012 R2 [Windows Store apps, desktop apps]

Minimum supported phone

Windows Phone 8.1 [Windows Phone Silverlight 8.1 and Windows Runtime apps]


Windows::Web::Http::Headers [C++]




[ DualApiPartition()]
[ MarshalingBehavior(Agile)]
[ Threading(Both)]
[ Version(0x06030000)]

See also