Showing preview only (7,814K chars total). Download the full file or copy to clipboard to get everything.
Repository: tjoudeh/WebApiHMACAuthentication
Branch: master
Commit: adb24234389f
Files: 51
Total size: 7.4 MB
Directory structure:
gitextract_aho6g0tw/
├── .gitattributes
├── .gitignore
├── HMACAuthentication.Client/
│ ├── App.config
│ ├── HMACAuthentication.Client.csproj
│ ├── Order.cs
│ ├── Program.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ └── packages.config
├── HMACAuthentication.WebApi/
│ ├── App_Start/
│ │ └── WebApiConfig.cs
│ ├── Controllers/
│ │ └── OrdersController.cs
│ ├── Filters/
│ │ └── HMACAuthenticationAttribute.cs
│ ├── Global.asax
│ ├── Global.asax.cs
│ ├── HMACAuthentication.WebApi.csproj
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ └── packages.config
├── README.md
├── WebApiHMACAuthentication.sln
└── packages/
├── Microsoft.AspNet.WebApi.5.1.2/
│ └── Microsoft.AspNet.WebApi.5.1.2.nupkg
├── Microsoft.AspNet.WebApi.Client.5.1.2/
│ ├── Microsoft.AspNet.WebApi.Client.5.1.2.nupkg
│ └── lib/
│ ├── net45/
│ │ └── System.Net.Http.Formatting.xml
│ └── portable-wp8%2Bnetcore45%2Bnet45/
│ └── System.Net.Http.Formatting.xml
├── Microsoft.AspNet.WebApi.Client.5.2.2/
│ ├── Microsoft.AspNet.WebApi.Client.5.2.2.nupkg
│ └── lib/
│ ├── net45/
│ │ └── System.Net.Http.Formatting.xml
│ └── portable-wp8+netcore45+net45+wp81+wpa81/
│ └── System.Net.Http.Formatting.xml
├── Microsoft.AspNet.WebApi.Core.5.1.2/
│ ├── Content/
│ │ └── web.config.transform
│ ├── Microsoft.AspNet.WebApi.Core.5.1.2.nupkg
│ └── lib/
│ └── net45/
│ └── System.Web.Http.xml
├── Microsoft.AspNet.WebApi.WebHost.5.1.2/
│ ├── Microsoft.AspNet.WebApi.WebHost.5.1.2.nupkg
│ └── lib/
│ └── net45/
│ └── System.Web.Http.WebHost.xml
├── Newtonsoft.Json.5.0.6/
│ ├── Newtonsoft.Json.5.0.6.nupkg
│ └── lib/
│ ├── net20/
│ │ └── Newtonsoft.Json.xml
│ ├── net35/
│ │ └── Newtonsoft.Json.xml
│ ├── net40/
│ │ └── Newtonsoft.Json.xml
│ ├── net45/
│ │ └── Newtonsoft.Json.xml
│ ├── netcore45/
│ │ └── Newtonsoft.Json.xml
│ ├── portable-net40%2Bsl4%2Bwp7%2Bwin8/
│ │ └── Newtonsoft.Json.xml
│ └── portable-net45%2Bwp80%2Bwin8/
│ └── Newtonsoft.Json.xml
├── Newtonsoft.Json.6.0.4/
│ ├── Newtonsoft.Json.6.0.4.nupkg
│ ├── lib/
│ │ ├── net20/
│ │ │ └── Newtonsoft.Json.xml
│ │ ├── net35/
│ │ │ └── Newtonsoft.Json.xml
│ │ ├── net40/
│ │ │ └── Newtonsoft.Json.xml
│ │ ├── net45/
│ │ │ └── Newtonsoft.Json.xml
│ │ ├── netcore45/
│ │ │ └── Newtonsoft.Json.xml
│ │ ├── portable-net40+sl5+wp80+win8+wpa81/
│ │ │ └── Newtonsoft.Json.xml
│ │ └── portable-net45+wp80+win8+wpa81/
│ │ └── Newtonsoft.Json.xml
│ └── tools/
│ └── install.ps1
└── repositories.config
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain
================================================
FILE: .gitignore
================================================
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Rr]elease/
x64/
build/
[Bb]in/
[Oo]bj/
# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
!packages/*/build/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.log
*.scc
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
*.ncrunch*
.*crunch*.local.xml
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.Publish.xml
# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
#packages/
# Windows Azure Build Output
csx
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.[Pp]ublish.xml
*.pfx
*.publishsettings
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
App_Data/*.mdf
App_Data/*.ldf
#LightSwitch generated files
GeneratedArtifacts/
_Pvt_Extensions/
ModelManifest.xml
# =========================
# Windows detritus
# =========================
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Mac desktop service store files
.DS_Store
================================================
FILE: HMACAuthentication.Client/App.config
================================================
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
================================================
FILE: HMACAuthentication.Client/HMACAuthentication.Client.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{B9CECCA4-C107-41DE-BB3D-CBE7E5561059}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>HMACAuthentication.Client</RootNamespace>
<AssemblyName>HMACAuthentication.Client</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.Formatting, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.2\lib\net45\System.Net.Http.Formatting.dll</HintPath>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Order.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
================================================
FILE: HMACAuthentication.Client/Order.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HMACAuthentication.Client
{
public class Order
{
public int OrderID { get; set; }
public string CustomerName { get; set; }
public string ShipperCity { get; set; }
public Boolean IsShipped { get; set; }
}
}
================================================
FILE: HMACAuthentication.Client/Program.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Security.Cryptography;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace HMACAuthentication.Client
{
class Program
{
static void Main(string[] args)
{
RunAsync().Wait();
}
static async Task RunAsync()
{
Console.WriteLine("Calling the back-end API");
string apiBaseAddress = "http://localhost:43326/";
CustomDelegatingHandler customDelegatingHandler = new CustomDelegatingHandler();
HttpClient client = HttpClientFactory.Create(customDelegatingHandler);
var order = new Order { OrderID = 10248, CustomerName = "Taiseer Joudeh", ShipperCity = "Amman", IsShipped = true };
HttpResponseMessage response = await client.PostAsJsonAsync(apiBaseAddress + "api/orders", order);
if (response.IsSuccessStatusCode)
{
string responseString = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseString);
Console.WriteLine("HTTP Status: {0}, Reason {1}. Press ENTER to exit", response.StatusCode, response.ReasonPhrase);
}
else
{
Console.WriteLine("Failed to call the API. HTTP Status: {0}, Reason {1}", response.StatusCode, response.ReasonPhrase);
}
Console.ReadLine();
}
public class CustomDelegatingHandler : DelegatingHandler
{
//Obtained from the server earlier, APIKey MUST be stored securly and in App.Config
private string APPId = "4d53bce03ec34c0a911182d4c228ee6c";
private string APIKey = "A93reRTUJHsCuQSHR+L3GxqOJyDmQpCgps102ciuabc=";
protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
HttpResponseMessage response = null;
string requestContentBase64String = string.Empty;
string requestUri = System.Web.HttpUtility.UrlEncode(request.RequestUri.AbsoluteUri.ToLower());
string requestHttpMethod = request.Method.Method;
//Calculate UNIX time
DateTime epochStart = new DateTime(1970, 01, 01, 0, 0, 0, 0, DateTimeKind.Utc);
TimeSpan timeSpan = DateTime.UtcNow - epochStart;
string requestTimeStamp = Convert.ToUInt64(timeSpan.TotalSeconds).ToString();
//create random nonce for each request
string nonce = Guid.NewGuid().ToString("N");
//Checking if the request contains body, usually will be null wiht HTTP GET and DELETE
if (request.Content != null)
{
byte[] content = await request.Content.ReadAsByteArrayAsync();
MD5 md5 = MD5.Create();
//Hashing the request body, any change in request body will result in different hash, we'll incure message integrity
byte[] requestContentHash = md5.ComputeHash(content);
requestContentBase64String = Convert.ToBase64String(requestContentHash);
}
//Creating the raw signature string
string signatureRawData = String.Format("{0}{1}{2}{3}{4}{5}", APPId, requestHttpMethod, requestUri, requestTimeStamp, nonce, requestContentBase64String);
var secretKeyByteArray = Convert.FromBase64String(APIKey);
byte[] signature = Encoding.UTF8.GetBytes(signatureRawData);
using (HMACSHA256 hmac = new HMACSHA256(secretKeyByteArray))
{
byte[] signatureBytes = hmac.ComputeHash(signature);
string requestSignatureBase64String = Convert.ToBase64String(signatureBytes);
//Setting the values in the Authorization header using custom scheme (amx)
request.Headers.Authorization = new AuthenticationHeaderValue("amx", string.Format("{0}:{1}:{2}:{3}", APPId, requestSignatureBase64String, nonce, requestTimeStamp));
}
response = await base.SendAsync(request, cancellationToken);
return response;
}
}
private void GenerateAPPKey()
{
using (var cryptoProvider = new RNGCryptoServiceProvider())
{
byte[] secretKeyByteArray = new byte[32]; //256 bit
cryptoProvider.GetBytes(secretKeyByteArray);
var APIKey = Convert.ToBase64String(secretKeyByteArray);
}
}
}
}
================================================
FILE: HMACAuthentication.Client/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("HMACAuthentication.Client")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("HMACAuthentication.Client")]
[assembly: AssemblyCopyright("Copyright © 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("651613b5-5996-4172-ad76-c01412e328bb")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
================================================
FILE: HMACAuthentication.Client/packages.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
</packages>
================================================
FILE: HMACAuthentication.WebApi/App_Start/WebApiConfig.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace HMACAuthentication.WebApi
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
}
}
}
================================================
FILE: HMACAuthentication.WebApi/Controllers/OrdersController.cs
================================================
using HMACAuthentication.WebApi.Filters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Security.Claims;
using System.Web.Http;
namespace HMACAuthentication.WebApi.Controllers
{
[HMACAuthentication]
[RoutePrefix("api/Orders")]
public class OrdersController : ApiController
{
[Route("")]
public IHttpActionResult Get()
{
ClaimsPrincipal principal = Request.GetRequestContext().Principal as ClaimsPrincipal;
var Name = ClaimsPrincipal.Current.Identity.Name;
return Ok(Order.CreateOrders());
}
[Route("")]
public IHttpActionResult Post(Order order)
{
return Ok(order);
}
}
#region Helpers
public class Order
{
public int OrderID { get; set; }
public string CustomerName { get; set; }
public string ShipperCity { get; set; }
public Boolean IsShipped { get; set; }
public static List<Order> CreateOrders()
{
List<Order> OrderList = new List<Order>
{
new Order {OrderID = 10248, CustomerName = "Taiseer Joudeh", ShipperCity = "Amman", IsShipped = true },
new Order {OrderID = 10249, CustomerName = "Ahmad Hasan", ShipperCity = "Dubai", IsShipped = false},
new Order {OrderID = 10250,CustomerName = "Tamer Yaser", ShipperCity = "Jeddah", IsShipped = false },
new Order {OrderID = 10251,CustomerName = "Lina Majed", ShipperCity = "Abu Dhabi", IsShipped = false},
new Order {OrderID = 10252,CustomerName = "Yasmeen Rami", ShipperCity = "Kuwait", IsShipped = true}
};
return OrderList;
}
}
#endregion
}
================================================
FILE: HMACAuthentication.WebApi/Filters/HMACAuthenticationAttribute.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Security.Cryptography;
using System.Security.Principal;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Web;
using System.Web.Http;
using System.Web.Http.Filters;
using System.Web.Http.Results;
namespace HMACAuthentication.WebApi.Filters
{
public class HMACAuthenticationAttribute : Attribute, IAuthenticationFilter
{
private static Dictionary<string, string> allowedApps = new Dictionary<string, string>();
private readonly UInt64 requestMaxAgeInSeconds = 300; //5 mins
private readonly string authenticationScheme = "amx";
public HMACAuthenticationAttribute()
{
if (allowedApps.Count == 0)
{
allowedApps.Add("4d53bce03ec34c0a911182d4c228ee6c", "A93reRTUJHsCuQSHR+L3GxqOJyDmQpCgps102ciuabc=");
}
}
public Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken)
{
var req = context.Request;
if (req.Headers.Authorization != null && authenticationScheme.Equals(req.Headers.Authorization.Scheme, StringComparison.OrdinalIgnoreCase))
{
var rawAuthzHeader = req.Headers.Authorization.Parameter;
var autherizationHeaderArray = GetAutherizationHeaderValues(rawAuthzHeader);
if (autherizationHeaderArray != null)
{
var APPId = autherizationHeaderArray[0];
var incomingBase64Signature = autherizationHeaderArray[1];
var nonce = autherizationHeaderArray[2];
var requestTimeStamp = autherizationHeaderArray[3];
var isValid = isValidRequest(req, APPId, incomingBase64Signature, nonce, requestTimeStamp);
if (isValid.Result)
{
var currentPrincipal = new GenericPrincipal(new GenericIdentity(APPId), null);
context.Principal = currentPrincipal;
}
else
{
context.ErrorResult = new UnauthorizedResult(new AuthenticationHeaderValue[0], context.Request);
}
}
else
{
context.ErrorResult = new UnauthorizedResult(new AuthenticationHeaderValue[0], context.Request);
}
}
else
{
context.ErrorResult = new UnauthorizedResult(new AuthenticationHeaderValue[0], context.Request);
}
return Task.FromResult(0);
}
public Task ChallengeAsync(HttpAuthenticationChallengeContext context, CancellationToken cancellationToken)
{
context.Result = new ResultWithChallenge(context.Result);
return Task.FromResult(0);
}
public bool AllowMultiple
{
get { return false; }
}
private string[] GetAutherizationHeaderValues(string rawAuthzHeader)
{
var credArray = rawAuthzHeader.Split(':');
if (credArray.Length == 4)
{
return credArray;
}
else
{
return null;
}
}
private async Task<bool> isValidRequest(HttpRequestMessage req, string APPId, string incomingBase64Signature, string nonce, string requestTimeStamp)
{
string requestContentBase64String = "";
string requestUri = HttpUtility.UrlEncode(req.RequestUri.AbsoluteUri.ToLower());
string requestHttpMethod = req.Method.Method;
if (!allowedApps.ContainsKey(APPId))
{
return false;
}
var sharedKey = allowedApps[APPId];
if (isReplayRequest(nonce, requestTimeStamp))
{
return false;
}
byte[] hash = await ComputeHash(req.Content);
if (hash != null)
{
requestContentBase64String = Convert.ToBase64String(hash);
}
string data = String.Format("{0}{1}{2}{3}{4}{5}", APPId, requestHttpMethod, requestUri, requestTimeStamp, nonce, requestContentBase64String);
var secretKeyBytes = Convert.FromBase64String(sharedKey);
byte[] signature = Encoding.UTF8.GetBytes(data);
using (HMACSHA256 hmac = new HMACSHA256(secretKeyBytes))
{
byte[] signatureBytes = hmac.ComputeHash(signature);
return (incomingBase64Signature.Equals(Convert.ToBase64String(signatureBytes), StringComparison.Ordinal));
}
}
private bool isReplayRequest(string nonce, string requestTimeStamp)
{
if (System.Runtime.Caching.MemoryCache.Default.Contains(nonce))
{
return true;
}
DateTime epochStart = new DateTime(1970, 01, 01, 0, 0, 0, 0, DateTimeKind.Utc);
TimeSpan currentTs = DateTime.UtcNow - epochStart;
var serverTotalSeconds = Convert.ToUInt64(currentTs.TotalSeconds);
var requestTotalSeconds = Convert.ToUInt64(requestTimeStamp);
if ((serverTotalSeconds - requestTotalSeconds) > requestMaxAgeInSeconds)
{
return true;
}
System.Runtime.Caching.MemoryCache.Default.Add(nonce, requestTimeStamp, DateTimeOffset.UtcNow.AddSeconds(requestMaxAgeInSeconds));
return false;
}
private static async Task<byte[]> ComputeHash(HttpContent httpContent)
{
using (MD5 md5 = MD5.Create())
{
byte[] hash = null;
var content = await httpContent.ReadAsByteArrayAsync();
if (content.Length != 0)
{
hash = md5.ComputeHash(content);
}
return hash;
}
}
}
public class ResultWithChallenge : IHttpActionResult
{
private readonly string authenticationScheme = "amx";
private readonly IHttpActionResult next;
public ResultWithChallenge(IHttpActionResult next)
{
this.next = next;
}
public async Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
var response = await next.ExecuteAsync(cancellationToken);
if (response.StatusCode == HttpStatusCode.Unauthorized)
{
response.Headers.WwwAuthenticate.Add(new AuthenticationHeaderValue(authenticationScheme));
}
return response;
}
}
}
================================================
FILE: HMACAuthentication.WebApi/Global.asax
================================================
<%@ Application Codebehind="Global.asax.cs" Inherits="HMACAuthentication.WebApi.WebApiApplication" Language="C#" %>
================================================
FILE: HMACAuthentication.WebApi/Global.asax.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Routing;
namespace HMACAuthentication.WebApi
{
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
}
}
}
================================================
FILE: HMACAuthentication.WebApi/HMACAuthentication.WebApi.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>
</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{C34ED7DB-C840-42AA-889F-D2F64DD2D0A8}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>HMACAuthentication.WebApi</RootNamespace>
<AssemblyName>HMACAuthentication.WebApi</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<UseIISExpress>true</UseIISExpress>
<IISExpressSSLPort />
<IISExpressAnonymousAuthentication />
<IISExpressWindowsAuthentication />
<IISExpressUseClassicPipelineMode />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
</ItemGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json">
<HintPath>..\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http.Formatting">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.1.2\lib\net45\System.Net.Http.Formatting.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.1.2\lib\net45\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http.WebHost">
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.1.2\lib\net45\System.Web.Http.WebHost.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Include="Global.asax" />
<Content Include="Web.config" />
</ItemGroup>
<ItemGroup>
<Compile Include="App_Start\WebApiConfig.cs" />
<Compile Include="Controllers\OrdersController.cs" />
<Compile Include="Filters\HMACAuthenticationAttribute.cs" />
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="packages.config" />
<None Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
</None>
<None Include="Web.Release.config">
<DependentUpon>Web.config</DependentUpon>
</None>
</ItemGroup>
<ItemGroup />
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>43326</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:43326/</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
================================================
FILE: HMACAuthentication.WebApi/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("HMACAuthentication.WebApi")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("HMACAuthentication.WebApi")]
[assembly: AssemblyCopyright("Copyright © 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("36630be0-9e53-4d1b-8b92-da6d60118b89")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
================================================
FILE: HMACAuthentication.WebApi/Web.Debug.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--
In the example below, the "SetAttributes" transform will change the value of
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
finds an attribute "name" that has a value of "MyDB".
<connectionStrings>
<add name="MyDB"
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
-->
<system.web>
<!--
In the example below, the "Replace" transform will replace the entire
<customErrors> section of your web.config file.
Note that because there is only one customErrors section under the
<system.web> node, there is no need to use the "xdt:Locator" attribute.
<customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly" xdt:Transform="Replace">
<error statusCode="500" redirect="InternalError.htm"/>
</customErrors>
-->
</system.web>
</configuration>
================================================
FILE: HMACAuthentication.WebApi/Web.Release.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--
In the example below, the "SetAttributes" transform will change the value of
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
finds an attribute "name" that has a value of "MyDB".
<connectionStrings>
<add name="MyDB"
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
-->
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<!--
In the example below, the "Replace" transform will replace the entire
<customErrors> section of your web.config file.
Note that because there is only one customErrors section under the
<system.web> node, there is no need to use the "xdt:Locator" attribute.
<customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly" xdt:Transform="Replace">
<error statusCode="500" redirect="InternalError.htm"/>
</customErrors>
-->
</system.web>
</configuration>
================================================
FILE: HMACAuthentication.WebApi/Web.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=301879
-->
<configuration>
<appSettings></appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
================================================
FILE: HMACAuthentication.WebApi/packages.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.AspNet.WebApi" version="5.1.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.1.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.1.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.1.2" targetFramework="net45" />
<package id="Newtonsoft.Json" version="5.0.6" targetFramework="net45" />
</packages>
================================================
FILE: README.md
================================================
ASP.NET Web API HMAC Authentication (API Key Authentication)
========================
Project shows how to secure ASP.NET Web API using API Keys, this technique is useful when TLS protocol is not an option and transmitting data should be done securely.
================================================
FILE: WebApiHMACAuthentication.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30501.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HMACAuthentication.Client", "HMACAuthentication.Client\HMACAuthentication.Client.csproj", "{B9CECCA4-C107-41DE-BB3D-CBE7E5561059}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HMACAuthentication.WebApi", "HMACAuthentication.WebApi\HMACAuthentication.WebApi.csproj", "{C34ED7DB-C840-42AA-889F-D2F64DD2D0A8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B9CECCA4-C107-41DE-BB3D-CBE7E5561059}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B9CECCA4-C107-41DE-BB3D-CBE7E5561059}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B9CECCA4-C107-41DE-BB3D-CBE7E5561059}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B9CECCA4-C107-41DE-BB3D-CBE7E5561059}.Release|Any CPU.Build.0 = Release|Any CPU
{C34ED7DB-C840-42AA-889F-D2F64DD2D0A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C34ED7DB-C840-42AA-889F-D2F64DD2D0A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C34ED7DB-C840-42AA-889F-D2F64DD2D0A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C34ED7DB-C840-42AA-889F-D2F64DD2D0A8}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: packages/Microsoft.AspNet.WebApi.Client.5.1.2/lib/net45/System.Net.Http.Formatting.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly>
<name>System.Net.Http.Formatting</name>
</assembly>
<members>
<member name="T:System.Net.Http.ByteRangeStreamContent">
<summary>
<see cref="T:System.Net.Http.HttpContent" /> implementation which provides a byte range view over a stream used to generate HTTP 206 (Partial Content) byte range responses. The <see cref="T:System.Net.Http.ByteRangeStreamContent" /> supports one or more byte ranges regardless of whether the ranges are consecutive or not. If there is only one range then a single partial response body containing a Content-Range header is generated. If there are more than one ranges then a multipart/byteranges response is generated where each body part contains a range indicated by the associated Content-Range header field. </summary>
</member>
<member name="M:System.Net.Http.ByteRangeStreamContent.#ctor(System.IO.Stream,System.Net.Http.Headers.RangeHeaderValue,System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary>
<see cref="T:System.Net.Http.HttpContent" /> implementation which provides a byte range view over a stream used to generate HTTP 206 (Partial Content) byte range responses. If none of the requested ranges overlap with the current extend of the selected resource represented by the content parameter then an <see cref="T:System.Net.Http.InvalidByteRangeException" /> is thrown indicating the valid Content-Range of the content. </summary>
<param name="content">The stream over which to generate a byte range view.</param>
<param name="range">The range or ranges, typically obtained from the Range HTTP request header field.</param>
<param name="mediaType">The media type of the content stream.</param>
</member>
<member name="M:System.Net.Http.ByteRangeStreamContent.#ctor(System.IO.Stream,System.Net.Http.Headers.RangeHeaderValue,System.Net.Http.Headers.MediaTypeHeaderValue,System.Int32)">
<summary>
<see cref="T:System.Net.Http.HttpContent" /> implementation which provides a byte range view over a stream used to generate HTTP 206 (Partial Content) byte range responses. If none of the requested ranges overlap with the current extend of the selected resource represented by the content parameter then an <see cref="T:System.Net.Http.InvalidByteRangeException" /> is thrown indicating the valid Content-Range of the content. </summary>
<param name="content">The stream over which to generate a byte range view.</param>
<param name="range">The range or ranges, typically obtained from the Range HTTP request header field.</param>
<param name="mediaType">The media type of the content stream.</param>
<param name="bufferSize">The buffer size used when copying the content stream.</param>
</member>
<member name="M:System.Net.Http.ByteRangeStreamContent.#ctor(System.IO.Stream,System.Net.Http.Headers.RangeHeaderValue,System.String)">
<summary>
<see cref="T:System.Net.Http.HttpContent" /> implementation which provides a byte range view over a stream used to generate HTTP 206 (Partial Content) byte range responses. If none of the requested ranges overlap with the current extend of the selected resource represented by the content parameter then an <see cref="T:System.Net.Http.InvalidByteRangeException" /> is thrown indicating the valid Content-Range of the content. </summary>
<param name="content">The stream over which to generate a byte range view.</param>
<param name="range">The range or ranges, typically obtained from the Range HTTP request header field.</param>
<param name="mediaType">The media type of the content stream.</param>
</member>
<member name="M:System.Net.Http.ByteRangeStreamContent.#ctor(System.IO.Stream,System.Net.Http.Headers.RangeHeaderValue,System.String,System.Int32)">
<summary>
<see cref="T:System.Net.Http.HttpContent" /> implementation which provides a byte range view over a stream used to generate HTTP 206 (Partial Content) byte range responses. If none of the requested ranges overlap with the current extend of the selected resource represented by the content parameter then an <see cref="T:System.Net.Http.InvalidByteRangeException" /> is thrown indicating the valid Content-Range of the content. </summary>
<param name="content">The stream over which to generate a byte range view.</param>
<param name="range">The range or ranges, typically obtained from the Range HTTP request header field.</param>
<param name="mediaType">The media type of the content stream.</param>
<param name="bufferSize">The buffer size used when copying the content stream.</param>
</member>
<member name="M:System.Net.Http.ByteRangeStreamContent.Dispose(System.Boolean)">
<summary>Releases the resources used by the current instance of the <see cref="T:System.Net.Http.ByteRangeStreamContent" /> class.</summary>
<param name="disposing">true to release managed and unmanaged resources; false to release only unmanaged resources.</param>
</member>
<member name="M:System.Net.Http.ByteRangeStreamContent.SerializeToStreamAsync(System.IO.Stream,System.Net.TransportContext)">
<summary>Asynchronously serialize and write the byte range to an HTTP content stream.</summary>
<returns>The task object representing the asynchronous operation.</returns>
<param name="stream">The target stream.</param>
<param name="context">Information about the transport.</param>
</member>
<member name="M:System.Net.Http.ByteRangeStreamContent.TryComputeLength(System.Int64@)">
<summary>Determines whether a byte array has a valid length in bytes.</summary>
<returns>true if length is a valid length; otherwise, false.</returns>
<param name="length">The length in bytes of the byte array.</param>
</member>
<member name="T:System.Net.Http.HttpClientExtensions">
<summary> Extension methods that aid in making formatted requests using <see cref="T:System.Net.Http.HttpClient" />. </summary>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsJsonAsync``1(System.Net.Http.HttpClient,System.String,``0)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsJsonAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Threading.CancellationToken)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsJsonAsync``1(System.Net.Http.HttpClient,System.Uri,``0)">
<summary> Sends a POST request as an asynchronous operation to the specified Uri with the given value serialized as JSON. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsJsonAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Threading.CancellationToken)">
<summary> Sends a POST request as an asynchronous operation to the specified Uri with the given value serialized as JSON. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsXmlAsync``1(System.Net.Http.HttpClient,System.String,``0)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsXmlAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Threading.CancellationToken)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsXmlAsync``1(System.Net.Http.HttpClient,System.Uri,``0)">
<summary> Sends a POST request as an asynchronous operation to the specified Uri with the given value serialized as XML. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsXmlAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Threading.CancellationToken)">
<summary> Sends a POST request as an asynchronous operation to the specified Uri with the given value serialized as XML. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Net.Http.Formatting.MediaTypeFormatter)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.Net.Http.Headers.MediaTypeHeaderValue,System.Threading.CancellationToken)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.String)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.String,System.Threading.CancellationToken)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.Threading.CancellationToken)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Net.Http.Formatting.MediaTypeFormatter)">
<summary> Sends a POST request as an asynchronous operation to the specified Uri with value serialized using the given formatter. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="formatter">The formatter used to serialize the value.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.Net.Http.Headers.MediaTypeHeaderValue,System.Threading.CancellationToken)">
<summary> Sends a POST request as an asynchronous operation to the specified Uri with value serialized using the given formatter. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="formatter">The formatter used to serialize the value.</param>
<param name="mediaType">The authoritative value of the request's content's Content-Type header. Can be null in which case the <paramref name="formatter">formatter's</paramref> default content type will be used.</param>
<param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.String)">
<summary> Sends a POST request as an asynchronous operation to the specified Uri with value serialized using the given formatter. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="formatter">The formatter used to serialize the value.</param>
<param name="mediaType">The authoritative value of the request's content's Content-Type header. Can be null in which case the <paramref name="formatter">formatter's</paramref> default content type will be used.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.String,System.Threading.CancellationToken)">
<summary> Sends a POST request as an asynchronous operation to the specified Uri with value serialized using the given formatter. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="formatter">The formatter used to serialize the value.</param>
<param name="mediaType">The authoritative value of the request's content's Content-Type header. Can be null in which case the <paramref name="formatter">formatter's</paramref> default content type will be used.</param>
<param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PostAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.Threading.CancellationToken)">
<summary> Sends a POST request as an asynchronous operation to the specified Uri with value serialized using the given formatter. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="formatter">The formatter used to serialize the value.</param>
<param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsJsonAsync``1(System.Net.Http.HttpClient,System.String,``0)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsJsonAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Threading.CancellationToken)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsJsonAsync``1(System.Net.Http.HttpClient,System.Uri,``0)">
<summary> Sends a PUT request as an asynchronous operation to the specified Uri with the given value serialized as JSON. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsJsonAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Threading.CancellationToken)">
<summary> Sends a PUT request as an asynchronous operation to the specified Uri with the given value serialized as JSON. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsXmlAsync``1(System.Net.Http.HttpClient,System.String,``0)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsXmlAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Threading.CancellationToken)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsXmlAsync``1(System.Net.Http.HttpClient,System.Uri,``0)">
<summary> Sends a PUT request as an asynchronous operation to the specified Uri with the given value serialized as XML. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsXmlAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Threading.CancellationToken)">
<summary> Sends a PUT request as an asynchronous operation to the specified Uri with the given value serialized as XML. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Net.Http.Formatting.MediaTypeFormatter)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.Net.Http.Headers.MediaTypeHeaderValue,System.Threading.CancellationToken)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.String)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.String,System.Threading.CancellationToken)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.Threading.CancellationToken)">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Net.Http.Formatting.MediaTypeFormatter)">
<summary> Sends a PUT request as an asynchronous operation to the specified Uri with value serialized using the given formatter. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="formatter">The formatter used to serialize the value.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.Net.Http.Headers.MediaTypeHeaderValue,System.Threading.CancellationToken)">
<summary> Sends a PUT request as an asynchronous operation to the specified Uri with value serialized using the given formatter. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="formatter">The formatter used to serialize the value.</param>
<param name="mediaType">The authoritative value of the request's content's Content-Type header. Can be null in which case the <paramref name="formatter">formatter's</paramref> default content type will be used.</param>
<param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.String)">
<summary> Sends a PUT request as an asynchronous operation to the specified Uri with value serialized using the given formatter. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="formatter">The formatter used to serialize the value.</param>
<param name="mediaType">The authoritative value of the request's content's Content-Type header. Can be null in which case the <paramref name="formatter">formatter's</paramref> default content type will be used.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.String,System.Threading.CancellationToken)">
<summary> Sends a PUT request as an asynchronous operation to the specified Uri with value serialized using the given formatter. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="formatter">The formatter used to serialize the value.</param>
<param name="mediaType">The authoritative value of the request's content's Content-Type header. Can be null in which case the <paramref name="formatter">formatter's</paramref> default content type will be used.</param>
<param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="M:System.Net.Http.HttpClientExtensions.PutAsync``1(System.Net.Http.HttpClient,System.Uri,``0,System.Net.Http.Formatting.MediaTypeFormatter,System.Threading.CancellationToken)">
<summary> Sends a PUT request as an asynchronous operation to the specified Uri with value serialized using the given formatter. </summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="client">The client used to make the request.</param>
<param name="requestUri">The Uri the request is sent to.</param>
<param name="value">The value that will be placed in the request's entity body.</param>
<param name="formatter">The formatter used to serialize the value.</param>
<param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
<typeparam name="T">The type of value.</typeparam>
</member>
<member name="T:System.Net.Http.HttpClientFactory">
<summary>Represents the factory for creating new instance of <see cref="T:System.Net.Http.HttpClient" />.</summary>
</member>
<member name="M:System.Net.Http.HttpClientFactory.Create(System.Net.Http.DelegatingHandler[])">
<summary>Creates a new instance of the <see cref="T:System.Net.Http.HttpClient" />.</summary>
<returns>A new instance of the <see cref="T:System.Net.Http.HttpClient" />.</returns>
<param name="handlers">The list of HTTP handler that delegates the processing of HTTP response messages to another handler.</param>
</member>
<member name="M:System.Net.Http.HttpClientFactory.Create(System.Net.Http.HttpMessageHandler,System.Net.Http.DelegatingHandler[])">
<summary>Creates a new instance of the <see cref="T:System.Net.Http.HttpClient" />.</summary>
<returns>A new instance of the <see cref="T:System.Net.Http.HttpClient" />.</returns>
<param name="innerHandler">The inner handler which is responsible for processing the HTTP response messages.</param>
<param name="handlers">The list of HTTP handler that delegates the processing of HTTP response messages to another handler.</param>
</member>
<member name="M:System.Net.Http.HttpClientFactory.CreatePipeline(System.Net.Http.HttpMessageHandler,System.Collections.Generic.IEnumerable{System.Net.Http.DelegatingHandler})">
<summary>Creates a new instance of the <see cref="T:System.Net.Http.HttpClient" /> which should be pipelined.</summary>
<returns>A new instance of the <see cref="T:System.Net.Http.HttpClient" /> which should be pipelined.</returns>
<param name="innerHandler">The inner handler which is responsible for processing the HTTP response messages.</param>
<param name="handlers">The list of HTTP handler that delegates the processing of HTTP response messages to another handler.</param>
</member>
<member name="T:System.Net.Http.HttpContentExtensions">
<summary>Specifies extension methods to allow strongly typed objects to be read from HttpContent instances.</summary>
</member>
<member name="M:System.Net.Http.HttpContentExtensions.ReadAsAsync``1(System.Net.Http.HttpContent)">
<summary> Returns a Task that will yield an object of the specified type <typeparamref name="T" /> from the content instance. </summary>
<returns>An object instance of the specified type.</returns>
<param name="content">The HttpContent instance from which to read.</param>
<typeparam name="T">The type of the object to read.</typeparam>
</member>
<member name="M:System.Net.Http.HttpContentExtensions.ReadAsAsync``1(System.Net.Http.HttpContent,System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter})">
<summary> Returns a Task that will yield an object of the specified type <typeparamref name="T" /> from the content instance. </summary>
<returns>An object instance of the specified type.</returns>
<param name="content">The HttpContent instance from which to read.</param>
<param name="formatters">The collection of MediaTyepFormatter instances to use.</param>
<typeparam name="T">The type of the object to read.</typeparam>
</member>
<member name="M:System.Net.Http.HttpContentExtensions.ReadAsAsync``1(System.Net.Http.HttpContent,System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter},System.Net.Http.Formatting.IFormatterLogger)">
<summary> Returns a Task that will yield an object of the specified type <typeparamref name="T" /> from the content instance. </summary>
<returns>An object instance of the specified type.</returns>
<param name="content">The HttpContent instance from which to read.</param>
<param name="formatters">The collection of MediaTypeFormatter instances to use.</param>
<param name="formatterLogger">The IFormatterLogger to log events to.</param>
<typeparam name="T">The type of the object to read.</typeparam>
</member>
<member name="M:System.Net.Http.HttpContentExtensions.ReadAsAsync``1(System.Net.Http.HttpContent,System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter},System.Net.Http.Formatting.IFormatterLogger,System.Threading.CancellationToken)">
<summary>Returns a Task that will yield an object of the specified type from the content instance.</summary>
<returns>An object instance of the specified type.</returns>
<param name="content">The HttpContent instance from which to read.</param>
<param name="formatters">The collection of MediaTypeFormatter instances to use.</param>
<param name="formatterLogger">The IFormatterLogger to log events to.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
<typeparam name="T">The type of the object to read.</typeparam>
</member>
<member name="M:System.Net.Http.HttpContentExtensions.ReadAsAsync``1(System.Net.Http.HttpContent,System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter},System.Threading.CancellationToken)">
<summary>Returns a Task that will yield an object of the specified type from the content instance.</summary>
<returns>An object instance of the specified type.</returns>
<param name="content">The HttpContent instance from which to read.</param>
<param name="formatters">The collection of MediaTypeFormatter instances to use.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
<typeparam name="T">The type of the object to read.</typeparam>
</member>
<member name="M:System.Net.Http.HttpContentExtensions.ReadAsAsync``1(System.Net.Http.HttpContent,System.Threading.CancellationToken)">
<summary>Returns a Task that will yield an object of the specified type from the content instance.</summary>
<returns>An object instance of the specified type.</returns>
<param name="content">The HttpContent instance from which to read.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
<typeparam name="T">The type of the object to read.</typeparam>
</member>
<member name="M:System.Net.Http.HttpContentExtensions.ReadAsAsync(System.Net.Http.HttpContent,System.Type)">
<summary> Returns a Task that will yield an object of the specified type from the content instance. </summary>
<returns>A Task that will yield an object instance of the specified type.</returns>
<param name="content">The HttpContent instance from which to read.</param>
<param name="type">The type of the object to read.</param>
</member>
<member name="M:System.Net.Http.HttpContentExtensions.ReadAsAsync(System.Net.Http.HttpContent,System.Type,System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter})">
<summary> Returns a Task that will yield an object of the specified type from the content instance using one of the provided formatters to deserialize the content. </summary>
<returns>An object instance of the specified type.</returns>
<param name="content">The HttpContent instance from which to read.</param>
<param name="type">The type of the object to read.</param>
<param name="formatters">The collection of MediaTypeFormatter instances to use.</param>
</member>
<member name="M:System.Net.Http.HttpContentExtensions.ReadAsAsync(System.Net.Http.HttpContent,System.Type,System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter},System.Net.Http.Formatting.IFormatterLogger)">
<summary> Returns a Task that will yield an object of the specified type from the content instance using one of the provided formatters to deserialize the content. </summary>
<returns>An object instance of the specified type.</returns>
<param name="content">The HttpContent instance from which to read.</param>
<param name="type">The type of the object to read.</param>
<param name="formatters">The collection of MediaTypeFormatter instances to use.</param>
<param name="formatterLogger">The IFormatterLogger to log events to.</param>
</member>
<member name="M:System.Net.Http.HttpContentExtensions.ReadAsAsync(System.Net.Http.HttpContent,System.Type,System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter},System.Net.Http.Formatting.IFormatterLogger,System.Threading.CancellationToken)">
<summary>Returns a Task that will yield an object of the specified type from the content instance using one of the provided formatters to deserialize the content.</summary>
<returns>An object instance of the specified type.</returns>
<param name="content">The HttpContent instance from which to read.</param>
<param name="type">The type of the object to read.</param>
<param name="formatters">The collection of MediaTypeFormatter instances to use.</param>
<param name="formatterLogger">The IFormatterLogger to log events to.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
</member>
<member name="M:System.Net.Http.HttpContentExtensions.ReadAsAsync(System.Net.Http.HttpContent,System.Type,System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter},System.Threading.CancellationToken)">
<summary>Returns a Task that will yield an object of the specified type from the content instance using one of the provided formatters to deserialize the content.</summary>
<returns>An object instance of the specified type.</returns>
<param name="content">The HttpContent instance from which to read.</param>
<param name="type">The type of the object to read.</param>
<param name="formatters">The collection of MediaTypeFormatter instances to use.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
</member>
<member name="M:System.Net.Http.HttpContentExtensions.ReadAsAsync(System.Net.Http.HttpContent,System.Type,System.Threading.CancellationToken)">
<summary>Returns a Task that will yield an object of the specified type from the content instance using one of the provided formatters to deserialize the content.</summary>
<returns>An object instance of the specified type.</returns>
<param name="content">The HttpContent instance from which to read.</param>
<param name="type">The type of the object to read.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
</member>
<member name="T:System.Net.Http.HttpContentFormDataExtensions">
<summary>Extension methods to read HTML form URL-encoded datafrom <see cref="T:System.Net.Http.HttpContent" /> instances.</summary>
</member>
<member name="M:System.Net.Http.HttpContentFormDataExtensions.IsFormData(System.Net.Http.HttpContent)">
<summary>Determines whether the specified content is HTML form URL-encoded data.</summary>
<returns>true if the specified content is HTML form URL-encoded data; otherwise, false.</returns>
<param name="content">The content.</param>
</member>
<member name="M:System.Net.Http.HttpContentFormDataExtensions.ReadAsFormDataAsync(System.Net.Http.HttpContent)">
<summary>Asynchronously reads HTML form URL-encoded from an <see cref="T:System.Net.Http.HttpContent" /> instance and stores the results in a <see cref="T:System.Collections.Specialized.NameValueCollection" /> object.</summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="content">The content.</param>
</member>
<member name="M:System.Net.Http.HttpContentFormDataExtensions.ReadAsFormDataAsync(System.Net.Http.HttpContent,System.Threading.CancellationToken)">
<summary>Asynchronously reads HTML form URL-encoded from an <see cref="T:System.Net.Http.HttpContent" /> instance and stores the results in a <see cref="T:System.Collections.Specialized.NameValueCollection" /> object.</summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="content">The content.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
</member>
<member name="T:System.Net.Http.HttpContentMessageExtensions">
<summary>Provides extension methods to read <see cref="T:System.Net.Http.HttpRequestMessage" /> and <see cref="T:System.Net.Http.HttpResponseMessage" /> entities from <see cref="T:System.Net.Http.HttpContent" /> instances. </summary>
</member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.IsHttpRequestMessageContent(System.Net.Http.HttpContent)">
<summary>Determines whether the specified content is HTTP request message content.</summary>
<returns>true if the specified content is HTTP message content; otherwise, false.</returns>
<param name="content">The content to check.</param>
</member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.IsHttpResponseMessageContent(System.Net.Http.HttpContent)">
<summary>Determines whether the specified content is HTTP response message content.</summary>
<returns>true if the specified content is HTTP message content; otherwise, false.</returns>
<param name="content">The content to check.</param>
</member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpRequestMessageAsync(System.Net.Http.HttpContent)">
<summary> Reads the <see cref="T:System.Net.Http.HttpContent" /> as an <see cref="T:System.Net.Http.HttpRequestMessage" />. </summary>
<returns>The parsed <see cref="T:System.Net.Http.HttpRequestMessage" /> instance.</returns>
<param name="content">The content to read.</param>
</member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpRequestMessageAsync(System.Net.Http.HttpContent,System.String)">
<summary> Reads the <see cref="T:System.Net.Http.HttpContent" /> as an <see cref="T:System.Net.Http.HttpRequestMessage" />. </summary>
<returns>The parsed <see cref="T:System.Net.Http.HttpRequestMessage" /> instance.</returns>
<param name="content">The content to read.</param>
<param name="uriScheme">The URI scheme to use for the request URI.</param>
</member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpRequestMessageAsync(System.Net.Http.HttpContent,System.String,System.Int32)">
<summary> Reads the <see cref="T:System.Net.Http.HttpContent" /> as an <see cref="T:System.Net.Http.HttpRequestMessage" />. </summary>
<returns>The parsed <see cref="T:System.Net.Http.HttpRequestMessage" /> instance.</returns>
<param name="content">The content to read.</param>
<param name="uriScheme">The URI scheme to use for the request URI.</param>
<param name="bufferSize">The size of the buffer.</param>
</member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpRequestMessageAsync(System.Net.Http.HttpContent,System.String,System.Int32,System.Int32)">
<summary>Reads the <see cref="T:System.Net.Http.HttpContent" /> as an <see cref="T:System.Net.Http.HttpRequestMessage" />.</summary>
<returns>The parsed <see cref="T:System.Net.Http.HttpRequestMessage" /> instance.</returns>
<param name="content">The content to read.</param>
<param name="uriScheme">The URI scheme to use for the request URI.</param>
<param name="bufferSize">The size of the buffer.</param>
<param name="maxHeaderSize">The maximum length of the HTTP header.</param>
</member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpRequestMessageAsync(System.Net.Http.HttpContent,System.String,System.Int32,System.Int32,System.Threading.CancellationToken)"></member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpRequestMessageAsync(System.Net.Http.HttpContent,System.String,System.Int32,System.Threading.CancellationToken)"></member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpRequestMessageAsync(System.Net.Http.HttpContent,System.String,System.Threading.CancellationToken)"></member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpRequestMessageAsync(System.Net.Http.HttpContent,System.Threading.CancellationToken)"></member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpResponseMessageAsync(System.Net.Http.HttpContent)">
<summary> Reads the <see cref="T:System.Net.Http.HttpContent" /> as an <see cref="T:System.Net.Http.HttpResponseMessage" />. </summary>
<returns>The parsed <see cref="T:System.Net.Http.HttpResponseMessage" /> instance.</returns>
<param name="content">The content to read.</param>
</member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpResponseMessageAsync(System.Net.Http.HttpContent,System.Int32)">
<summary>Reads the <see cref="T:System.Net.Http.HttpContent" /> as an <see cref="T:System.Net.Http.HttpResponseMessage" />. </summary>
<returns>The parsed <see cref="T:System.Net.Http.HttpResponseMessage" /> instance.</returns>
<param name="content">The content to read.</param>
<param name="bufferSize">The size of the buffer.</param>
</member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpResponseMessageAsync(System.Net.Http.HttpContent,System.Int32,System.Int32)">
<summary>Reads the <see cref="T:System.Net.Http.HttpContent" /> as an <see cref="T:System.Net.Http.HttpResponseMessage" />.</summary>
<returns>The parsed <see cref="T:System.Net.Http.HttpResponseMessage" /> instance.</returns>
<param name="content">The content to read.</param>
<param name="bufferSize">The size of the buffer.</param>
<param name="maxHeaderSize">The maximum length of the HTTP header.</param>
</member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpResponseMessageAsync(System.Net.Http.HttpContent,System.Int32,System.Int32,System.Threading.CancellationToken)"></member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpResponseMessageAsync(System.Net.Http.HttpContent,System.Int32,System.Threading.CancellationToken)"></member>
<member name="M:System.Net.Http.HttpContentMessageExtensions.ReadAsHttpResponseMessageAsync(System.Net.Http.HttpContent,System.Threading.CancellationToken)"></member>
<member name="T:System.Net.Http.HttpContentMultipartExtensions">
<summary>Extension methods to read MIME multipart entities from <see cref="T:System.Net.Http.HttpContent" /> instances.</summary>
</member>
<member name="M:System.Net.Http.HttpContentMultipartExtensions.IsMimeMultipartContent(System.Net.Http.HttpContent)">
<summary>Determines whether the specified content is MIME multipart content.</summary>
<returns>true if the specified content is MIME multipart content; otherwise, false.</returns>
<param name="content">The content.</param>
</member>
<member name="M:System.Net.Http.HttpContentMultipartExtensions.IsMimeMultipartContent(System.Net.Http.HttpContent,System.String)">
<summary>Determines whether the specified content is MIME multipart content with the specified subtype.</summary>
<returns>true if the specified content is MIME multipart content with the specified subtype; otherwise, false.</returns>
<param name="content">The content.</param>
<param name="subtype">The MIME multipart subtype to match.</param>
</member>
<member name="M:System.Net.Http.HttpContentMultipartExtensions.ReadAsMultipartAsync(System.Net.Http.HttpContent)">
<summary>Reads all body parts within a MIME multipart message and produces a set of <see cref="T:System.Net.Http.HttpContent" /> instances as a result.</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task`1" /> representing the tasks of getting the collection of <see cref="T:System.Net.Http.HttpContent" /> instances where each instance represents a body part.</returns>
<param name="content">An existing <see cref="T:System.Net.Http.HttpContent" /> instance to use for the object's content.</param>
</member>
<member name="M:System.Net.Http.HttpContentMultipartExtensions.ReadAsMultipartAsync(System.Net.Http.HttpContent,System.Threading.CancellationToken)">
<summary>Reads all body parts within a MIME multipart message and produces a set of <see cref="T:System.Net.Http.HttpContent" /> instances as a result.</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task`1" /> representing the tasks of getting the collection of <see cref="T:System.Net.Http.HttpContent" /> instances where each instance represents a body part.</returns>
<param name="content">An existing <see cref="T:System.Net.Http.HttpContent" /> instance to use for the object's content.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
</member>
<member name="M:System.Net.Http.HttpContentMultipartExtensions.ReadAsMultipartAsync``1(System.Net.Http.HttpContent,``0)">
<summary>Reads all body parts within a MIME multipart message and produces a set of <see cref="T:System.Net.Http.HttpContent" /> instances as a result using the streamProvider instance to determine where the contents of each body part is written.</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task`1" /> representing the tasks of getting the collection of <see cref="T:System.Net.Http.HttpContent" /> instances where each instance represents a body part.</returns>
<param name="content">An existing <see cref="T:System.Net.Http.HttpContent" /> instance to use for the object's content.</param>
<param name="streamProvider">A stream provider providing output streams for where to write body parts as they are parsed.</param>
<typeparam name="T">The type of the MIME multipart.</typeparam>
</member>
<member name="M:System.Net.Http.HttpContentMultipartExtensions.ReadAsMultipartAsync``1(System.Net.Http.HttpContent,``0,System.Int32)">
<summary>Reads all body parts within a MIME multipart message and produces a set of <see cref="T:System.Net.Http.HttpContent" /> instances as a result using the streamProvider instance to determine where the contents of each body part is written and bufferSize as read buffer size.</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task`1" /> representing the tasks of getting the collection of <see cref="T:System.Net.Http.HttpContent" /> instances where each instance represents a body part.</returns>
<param name="content">An existing <see cref="T:System.Net.Http.HttpContent" /> instance to use for the object's content.</param>
<param name="streamProvider">A stream provider providing output streams for where to write body parts as they are parsed.</param>
<param name="bufferSize">Size of the buffer used to read the contents.</param>
<typeparam name="T">The type of the MIME multipart.</typeparam>
</member>
<member name="M:System.Net.Http.HttpContentMultipartExtensions.ReadAsMultipartAsync``1(System.Net.Http.HttpContent,``0,System.Int32,System.Threading.CancellationToken)">
<summary>Reads all body parts within a MIME multipart message and produces a set of <see cref="T:System.Net.Http.HttpContent" /> instances as a result using the streamProvider instance to determine where the contents of each body part is written and bufferSize as read buffer size.</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task`1" /> representing the tasks of getting the collection of <see cref="T:System.Net.Http.HttpContent" /> instances where each instance represents a body part.</returns>
<param name="content">An existing <see cref="T:System.Net.Http.HttpContent" /> instance to use for the object's content.</param>
<param name="streamProvider">A stream provider providing output streams for where to write body parts as they are parsed.</param>
<param name="bufferSize">Size of the buffer used to read the contents.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
<typeparam name="T">The type of the MIME multipart.</typeparam>
</member>
<member name="M:System.Net.Http.HttpContentMultipartExtensions.ReadAsMultipartAsync``1(System.Net.Http.HttpContent,``0,System.Threading.CancellationToken)">
<summary>Reads all body parts within a MIME multipart message and produces a set of <see cref="T:System.Net.Http.HttpContent" /> instances as a result using the streamProvider instance to determine where the contents of each body part is written.</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task`1" /> representing the tasks of getting the collection of <see cref="T:System.Net.Http.HttpContent" /> instances where each instance represents a body part.</returns>
<param name="content">An existing <see cref="T:System.Net.Http.HttpContent" /> instance to use for the object's content.</param>
<param name="streamProvider">A stream provider providing output streams for where to write body parts as they are parsed.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
<typeparam name="T">The type of the MIME multipart.</typeparam>
</member>
<member name="T:System.Net.Http.HttpMessageContent">
<summary> Derived <see cref="T:System.Net.Http.HttpContent" /> class which can encapsulate an <see cref="P:System.Net.Http.HttpMessageContent.HttpResponseMessage" /> or an <see cref="P:System.Net.Http.HttpMessageContent.HttpRequestMessage" /> as an entity with media type "application/http". </summary>
</member>
<member name="M:System.Net.Http.HttpMessageContent.#ctor(System.Net.Http.HttpRequestMessage)">
<summary> Initializes a new instance of the <see cref="T:System.Net.Http.HttpMessageContent" /> class encapsulating an <see cref="P:System.Net.Http.HttpMessageContent.HttpRequestMessage" />. </summary>
<param name="httpRequest">The <see cref="P:System.Net.Http.HttpMessageContent.HttpResponseMessage" /> instance to encapsulate.</param>
</member>
<member name="M:System.Net.Http.HttpMessageContent.#ctor(System.Net.Http.HttpResponseMessage)">
<summary> Initializes a new instance of the <see cref="T:System.Net.Http.HttpMessageContent" /> class encapsulating an <see cref="P:System.Net.Http.HttpMessageContent.HttpResponseMessage" />. </summary>
<param name="httpResponse">The <see cref="P:System.Net.Http.HttpMessageContent.HttpResponseMessage" /> instance to encapsulate.</param>
</member>
<member name="M:System.Net.Http.HttpMessageContent.Dispose(System.Boolean)">
<summary> Releases unmanaged and - optionally - managed resources </summary>
<param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
</member>
<member name="P:System.Net.Http.HttpMessageContent.HttpRequestMessage">
<summary> Gets the HTTP request message. </summary>
</member>
<member name="P:System.Net.Http.HttpMessageContent.HttpResponseMessage">
<summary> Gets the HTTP response message. </summary>
</member>
<member name="M:System.Net.Http.HttpMessageContent.SerializeToStreamAsync(System.IO.Stream,System.Net.TransportContext)">
<summary> Asynchronously serializes the object's content to the given stream. </summary>
<returns>A <see cref="T:System.Threading.Tasks.Task" /> instance that is asynchronously serializing the object's content.</returns>
<param name="stream">The <see cref="T:System.IO.Stream" /> to which to write.</param>
<param name="context">The associated <see cref="T:System.Net.TransportContext" />.</param>
</member>
<member name="M:System.Net.Http.HttpMessageContent.TryComputeLength(System.Int64@)">
<summary> Computes the length of the stream if possible. </summary>
<returns>true if the length has been computed; otherwise false.</returns>
<param name="length">The computed length of the stream.</param>
</member>
<member name="T:System.Net.Http.HttpRequestHeadersExtensions">
<summary>Provides extension methods for the <see cref="T:System.Net.Http.Headers.HttpRequestHeaders" /> class.</summary>
</member>
<member name="M:System.Net.Http.HttpRequestHeadersExtensions.GetCookies(System.Net.Http.Headers.HttpRequestHeaders)">
<summary>Gets any cookie headers present in the request.</summary>
<returns>A collection of <see cref="T:System.Net.Http.Headers.CookieHeaderValue" /> instances.</returns>
<param name="headers">The request headers.</param>
</member>
<member name="M:System.Net.Http.HttpRequestHeadersExtensions.GetCookies(System.Net.Http.Headers.HttpRequestHeaders,System.String)">
<summary>Gets any cookie headers present in the request that contain a cookie state whose name that matches the specified value.</summary>
<returns>A collection of <see cref="T:System.Net.Http.Headers.CookieHeaderValue" /> instances.</returns>
<param name="headers">The request headers.</param>
<param name="name">The cookie state name to match.</param>
</member>
<member name="M:System.Net.Http.HttpRequestMessageExtensions.CreateResponse(System.Net.Http.HttpRequestMessage)"></member>
<member name="M:System.Net.Http.HttpRequestMessageExtensions.CreateResponse(System.Net.Http.HttpRequestMessage,System.Net.HttpStatusCode)"></member>
<member name="T:System.Net.Http.HttpResponseHeadersExtensions">
<summary> Provides extension methods for the <see cref="T:System.Net.Http.Headers.HttpResponseHeaders" /> class. </summary>
</member>
<member name="M:System.Net.Http.HttpResponseHeadersExtensions.AddCookies(System.Net.Http.Headers.HttpResponseHeaders,System.Collections.Generic.IEnumerable{System.Net.Http.Headers.CookieHeaderValue})">
<summary> Adds cookies to a response. Each Set-Cookie header is represented as one <see cref="T:System.Net.Http.Headers.CookieHeaderValue" /> instance. A <see cref="T:System.Net.Http.Headers.CookieHeaderValue" /> contains information about the domain, path, and other cookie information as well as one or more <see cref="T:System.Net.Http.Headers.CookieState" /> instances. Each <see cref="T:System.Net.Http.Headers.CookieState" /> instance contains a cookie name and whatever cookie state is associate with that name. The state is in the form of a <see cref="T:System.Collections.Specialized.NameValueCollection" /> which on the wire is encoded as HTML Form URL-encoded data. This representation allows for multiple related "cookies" to be carried within the same Cookie header while still providing separation between each cookie state. A sample Cookie header is shown below. In this example, there are two <see cref="T:System.Net.Http.Headers.CookieState" /> with names state1 and state2 respectively. Further, each cookie state contains two name/value pairs (name1/value1 and name2/value2) and (name3/value3 and name4/value4). <code> Set-Cookie: state1:name1=value1&amp;name2=value2; state2:name3=value3&amp;name4=value4; domain=domain1; path=path1; </code></summary>
<param name="headers">The response headers</param>
<param name="cookies">The cookie values to add to the response.</param>
</member>
<member name="T:System.Net.Http.InvalidByteRangeException">
<summary> An exception thrown by <see cref="T:System.Net.Http.ByteRangeStreamContent" /> in case none of the requested ranges overlap with the current extend of the selected resource. The current extend of the resource is indicated in the ContentRange property. </summary>
</member>
<member name="M:System.Net.Http.InvalidByteRangeException.#ctor(System.Net.Http.Headers.ContentRangeHeaderValue)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.InvalidByteRangeException" /> class.</summary>
</member>
<member name="M:System.Net.Http.InvalidByteRangeException.#ctor(System.Net.Http.Headers.ContentRangeHeaderValue,System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.InvalidByteRangeException" /> class.</summary>
</member>
<member name="M:System.Net.Http.InvalidByteRangeException.#ctor(System.Net.Http.Headers.ContentRangeHeaderValue,System.String)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.InvalidByteRangeException" /> class.</summary>
</member>
<member name="M:System.Net.Http.InvalidByteRangeException.#ctor(System.Net.Http.Headers.ContentRangeHeaderValue,System.String,System.Exception)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.InvalidByteRangeException" /> class.</summary>
</member>
<member name="P:System.Net.Http.InvalidByteRangeException.ContentRange">
<summary> The current extend of the resource indicated in terms of a ContentRange header field. </summary>
</member>
<member name="T:System.Net.Http.MultipartFileData">
<summary>Represents a multipart file data.</summary>
</member>
<member name="M:System.Net.Http.MultipartFileData.#ctor(System.Net.Http.Headers.HttpContentHeaders,System.String)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.MultipartFileData" /> class.</summary>
<param name="headers">The headers of the multipart file data.</param>
<param name="localFileName">The name of the local file for the multipart file data.</param>
</member>
<member name="P:System.Net.Http.MultipartFileData.Headers">
<summary>Gets or sets the headers of the multipart file data.</summary>
<returns>The headers of the multipart file data.</returns>
</member>
<member name="P:System.Net.Http.MultipartFileData.LocalFileName">
<summary>Gets or sets the name of the local file for the multipart file data.</summary>
<returns>The name of the local file for the multipart file data.</returns>
</member>
<member name="T:System.Net.Http.MultipartFileStreamProvider">
<summary>Represents an <see cref="T:System.Net.Http.IMultipartStreamProvider" /> suited for writing each MIME body parts of the MIME multipart message to a file using a <see cref="T:System.IO.FileStream" />.</summary>
</member>
<member name="M:System.Net.Http.MultipartFileStreamProvider.#ctor(System.String)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.MultipartFileStreamProvider" /> class.</summary>
<param name="rootPath">The root path where the content of MIME multipart body parts are written to.</param>
</member>
<member name="M:System.Net.Http.MultipartFileStreamProvider.#ctor(System.String,System.Int32)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.MultipartFileStreamProvider" /> class.</summary>
<param name="rootPath">The root path where the content of MIME multipart body parts are written to.</param>
<param name="bufferSize">The number of bytes buffered for writes to the file.</param>
</member>
<member name="P:System.Net.Http.MultipartFileStreamProvider.BufferSize">
<summary>Gets or sets the number of bytes buffered for writes to the file.</summary>
<returns>The number of bytes buffered for writes to the file.</returns>
</member>
<member name="P:System.Net.Http.MultipartFileStreamProvider.FileData">
<summary>Gets or sets the multipart file data.</summary>
<returns>The multipart file data.</returns>
</member>
<member name="M:System.Net.Http.MultipartFileStreamProvider.GetLocalFileName(System.Net.Http.Headers.HttpContentHeaders)">
<summary>Gets the name of the local file which will be combined with the root path to create an absolute file name where the contents of the current MIME body part will be stored.</summary>
<returns>A relative filename with no path component.</returns>
<param name="headers">The headers for the current MIME body part.</param>
</member>
<member name="M:System.Net.Http.MultipartFileStreamProvider.GetStream(System.Net.Http.HttpContent,System.Net.Http.Headers.HttpContentHeaders)">
<summary>Gets the stream instance where the message body part is written to.</summary>
<returns>The <see cref="T:System.IO.Stream" /> instance where the message body part is written to.</returns>
<param name="parent">The content of HTTP.</param>
<param name="headers">The header fields describing the body part.</param>
</member>
<member name="P:System.Net.Http.MultipartFileStreamProvider.RootPath">
<summary>Gets or sets the root path where the content of MIME multipart body parts are written to.</summary>
<returns>The root path where the content of MIME multipart body parts are written to.</returns>
</member>
<member name="T:System.Net.Http.MultipartFormDataStreamProvider">
<summary>Represents an <see cref="T:System.Net.Http.IMultipartStreamProvider" /> suited for use with HTML file uploads for writing file content to a <see cref="T:System.IO.FileStream" />.</summary>
</member>
<member name="M:System.Net.Http.MultipartFormDataStreamProvider.#ctor(System.String)">
<summary> Initializes a new instance of the <see cref="T:System.Net.Http.MultipartFormDataStreamProvider" /> class. </summary>
<param name="rootPath">The root path where the content of MIME multipart body parts are written to.</param>
</member>
<member name="M:System.Net.Http.MultipartFormDataStreamProvider.#ctor(System.String,System.Int32)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.MultipartFormDataStreamProvider" /> class.</summary>
<param name="rootPath">The root path where the content of MIME multipart body parts are written to.</param>
<param name="bufferSize">The number of bytes buffered for writes to the file.</param>
</member>
<member name="M:System.Net.Http.MultipartFormDataStreamProvider.ExecutePostProcessingAsync">
<summary>Reads the non-file contents as form data.</summary>
<returns>A task that represents the asynchronous operation.</returns>
</member>
<member name="M:System.Net.Http.MultipartFormDataStreamProvider.ExecutePostProcessingAsync(System.Threading.CancellationToken)"></member>
<member name="P:System.Net.Http.MultipartFormDataStreamProvider.FormData">
<summary>Gets a <see cref="T:System.Collections.Specialized.NameValueCollection" /> of form data passed as part of the multipart form data.</summary>
<returns>The <see cref="T:System.Collections.Specialized.NameValueCollection" /> of form data.</returns>
</member>
<member name="M:System.Net.Http.MultipartFormDataStreamProvider.GetStream(System.Net.Http.HttpContent,System.Net.Http.Headers.HttpContentHeaders)">
<summary>Gets the streaming instance where the message body part is written.</summary>
<returns>The <see cref="T:System.IO.Stream" /> instance where the message body part is written.</returns>
<param name="parent">The HTTP content that contains this body part.</param>
<param name="headers">Header fields describing the body part.</param>
</member>
<member name="T:System.Net.Http.MultipartMemoryStreamProvider">
<summary>Represents a multipart memory stream provider.</summary>
</member>
<member name="M:System.Net.Http.MultipartMemoryStreamProvider.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.MultipartMemoryStreamProvider" /> class.</summary>
</member>
<member name="M:System.Net.Http.MultipartMemoryStreamProvider.GetStream(System.Net.Http.HttpContent,System.Net.Http.Headers.HttpContentHeaders)">
<summary>Returns the <see cref="T:System.IO.Stream" /> for the <see cref="T:System.Net.Http.MultipartMemoryStreamProvider" />.</summary>
<returns>The <see cref="T:System.IO.Stream" /> for the <see cref="T:System.Net.Http.MultipartMemoryStreamProvider" />.</returns>
<param name="parent">A <see cref="T:System.Net.Http.HttpContent" /> object.</param>
<param name="headers">The HTTP content headers.</param>
</member>
<member name="T:System.Net.Http.MultipartRelatedStreamProvider">
<summary>Represents the provider for the multipart related multistream.</summary>
</member>
<member name="M:System.Net.Http.MultipartRelatedStreamProvider.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.MultipartRelatedStreamProvider" /> class.</summary>
</member>
<member name="M:System.Net.Http.MultipartRelatedStreamProvider.GetStream(System.Net.Http.HttpContent,System.Net.Http.Headers.HttpContentHeaders)">
<summary>Gets the related stream for the provider.</summary>
<returns>The content headers.</returns>
<param name="parent">The parent content.</param>
<param name="headers">The http content headers.</param>
</member>
<member name="P:System.Net.Http.MultipartRelatedStreamProvider.RootContent">
<summary>Gets the root content of the <see cref="T:System.Net.Http.MultipartRelatedStreamProvider" />.</summary>
<returns>The root content of the <see cref="T:System.Net.Http.MultipartRelatedStreamProvider" />.</returns>
</member>
<member name="T:System.Net.Http.MultipartStreamProvider">
<summary>Represents a stream provider that examines the headers provided by the MIME multipart parser as part of the MIME multipart extension methods (see <see cref="T:System.Net.Http.HttpContentMultipartExtensions" />) and decides what kind of stream to return for the body part to be written to.</summary>
</member>
<member name="M:System.Net.Http.MultipartStreamProvider.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.MultipartStreamProvider" /> class.</summary>
</member>
<member name="P:System.Net.Http.MultipartStreamProvider.Contents">
<summary>Gets or sets the contents for this <see cref="T:System.Net.Http.MultipartStreamProvider" />.</summary>
<returns>The contents for this <see cref="T:System.Net.Http.MultipartStreamProvider" />.</returns>
</member>
<member name="M:System.Net.Http.MultipartStreamProvider.ExecutePostProcessingAsync">
<summary>Executes the post processing operation for this <see cref="T:System.Net.Http.MultipartStreamProvider" />.</summary>
<returns>The asynchronous task for this operation.</returns>
</member>
<member name="M:System.Net.Http.MultipartStreamProvider.ExecutePostProcessingAsync(System.Threading.CancellationToken)">
<summary>Executes the post processing operation for this <see cref="T:System.Net.Http.MultipartStreamProvider" />.</summary>
<returns>The asynchronous task for this operation.</returns>
<param name="cancellationToken">The token to cancel the operation.</param>
</member>
<member name="M:System.Net.Http.MultipartStreamProvider.GetStream(System.Net.Http.HttpContent,System.Net.Http.Headers.HttpContentHeaders)">
<summary>Gets the stream where to write the body part to. This method is called when a MIME multipart body part has been parsed.</summary>
<returns>The <see cref="T:System.IO.Stream" /> instance where the message body part is written to.</returns>
<param name="parent">The content of the HTTP.</param>
<param name="headers">The header fields describing the body part.</param>
</member>
<member name="T:System.Net.Http.ObjectContent">
<summary> Contains a value as well as an associated <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> that will be used to serialize the value when writing this content. </summary>
</member>
<member name="M:System.Net.Http.ObjectContent.#ctor(System.Type,System.Object,System.Net.Http.Formatting.MediaTypeFormatter)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.ObjectContent" /> class.</summary>
<param name="type">The type of object this instance will contain.</param>
<param name="value">The value of the object this instance will contain.</param>
<param name="formatter">The formatter to use when serializing the value.</param>
</member>
<member name="M:System.Net.Http.ObjectContent.#ctor(System.Type,System.Object,System.Net.Http.Formatting.MediaTypeFormatter,System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary> Initializes a new instance of the <see cref="T:System.Net.Http.ObjectContent" /> class. </summary>
<param name="type">The type of object this instance will contain.</param>
<param name="value">The value of the object this instance will contain.</param>
<param name="formatter">The formatter to use when serializing the value.</param>
<param name="mediaType">The authoritative value of the Content-Type header. Can be null, in which case the default content type of the formatter will be used.</param>
</member>
<member name="M:System.Net.Http.ObjectContent.#ctor(System.Type,System.Object,System.Net.Http.Formatting.MediaTypeFormatter,System.String)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.ObjectContent" /> class.</summary>
<param name="type">The type of object this instance will contain.</param>
<param name="value">The value of the object this instance will contain.</param>
<param name="formatter">The formatter to use when serializing the value.</param>
<param name="mediaType">The authoritative value of the Content-Type header.</param>
</member>
<member name="P:System.Net.Http.ObjectContent.Formatter">
<summary>Gets the media-type formatter associated with this content instance.</summary>
<returns>The media type formatter associated with this content instance.</returns>
</member>
<member name="P:System.Net.Http.ObjectContent.ObjectType">
<summary>Gets the type of object managed by this <see cref="T:System.Net.Http.ObjectContent" /> instance.</summary>
<returns>The object type.</returns>
</member>
<member name="M:System.Net.Http.ObjectContent.SerializeToStreamAsync(System.IO.Stream,System.Net.TransportContext)">
<summary>Asynchronously serializes the object's content to the given stream.</summary>
<returns>The task object representing the asynchronous operation.</returns>
<param name="stream">The stream to write to.</param>
<param name="context">The associated <see cref="T:System.Net.TransportContext" />.</param>
</member>
<member name="M:System.Net.Http.ObjectContent.TryComputeLength(System.Int64@)">
<summary>Computes the length of the stream if possible.</summary>
<returns>true if the length has been computed; otherwise, false.</returns>
<param name="length">Receives the computed length of the stream.</param>
</member>
<member name="P:System.Net.Http.ObjectContent.Value">
<summary>Gets or sets the value of the content.</summary>
<returns>The content value.</returns>
</member>
<member name="T:System.Net.Http.ObjectContent`1">
<summary> Generic form of <see cref="T:System.Net.Http.ObjectContent" />. </summary>
<typeparam name="T">The type of object this class will contain.</typeparam>
</member>
<member name="M:System.Net.Http.ObjectContent`1.#ctor(`0,System.Net.Http.Formatting.MediaTypeFormatter)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.ObjectContent`1" /> class.</summary>
<param name="value">The value of the object this instance will contain.</param>
<param name="formatter">The formatter to use when serializing the value.</param>
</member>
<member name="M:System.Net.Http.ObjectContent`1.#ctor(`0,System.Net.Http.Formatting.MediaTypeFormatter,System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary> Initializes a new instance of the <see cref="T:System.Net.Http.ObjectContent`1" /> class. </summary>
<param name="value">The value of the object this instance will contain.</param>
<param name="formatter">The formatter to use when serializing the value.</param>
<param name="mediaType">The authoritative value of the Content-Type header. Can be null, in which case the default content type of the formatter will be used.</param>
</member>
<member name="M:System.Net.Http.ObjectContent`1.#ctor(`0,System.Net.Http.Formatting.MediaTypeFormatter,System.String)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.ObjectContent`1" /> class.</summary>
<param name="value">The value of the object this instance will contain.</param>
<param name="formatter">The formatter to use when serializing the value.</param>
<param name="mediaType">The authoritative value of the Content-Type header.</param>
</member>
<member name="T:System.Net.Http.PushStreamContent">
<summary>Enables scenarios where a data producer wants to write directly (either synchronously or asynchronously) using a stream.</summary>
</member>
<member name="M:System.Net.Http.PushStreamContent.#ctor(System.Action{System.IO.Stream,System.Net.Http.HttpContent,System.Net.TransportContext})">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.PushStreamContent" /> class.</summary>
<param name="onStreamAvailable">An action that is called when an output stream is available, allowing the action to write to it directly. </param>
</member>
<member name="M:System.Net.Http.PushStreamContent.#ctor(System.Action{System.IO.Stream,System.Net.Http.HttpContent,System.Net.TransportContext},System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.PushStreamContent" /> class.</summary>
<param name="onStreamAvailable">An action that is called when an output stream is available, allowing the action to write to it directly.</param>
<param name="mediaType">The media type.</param>
</member>
<member name="M:System.Net.Http.PushStreamContent.#ctor(System.Action{System.IO.Stream,System.Net.Http.HttpContent,System.Net.TransportContext},System.String)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.PushStreamContent" /> class.</summary>
<param name="onStreamAvailable">An action that is called when an output stream is available, allowing the action to write to it directly.</param>
<param name="mediaType">The media type.</param>
</member>
<member name="M:System.Net.Http.PushStreamContent.#ctor(System.Func{System.IO.Stream,System.Net.Http.HttpContent,System.Net.TransportContext,System.Threading.Tasks.Task})">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.PushStreamContent" /> class.</summary>
<param name="onStreamAvailable">An action that is called when an output stream is available, allowing the action to write to it directly.</param>
</member>
<member name="M:System.Net.Http.PushStreamContent.#ctor(System.Func{System.IO.Stream,System.Net.Http.HttpContent,System.Net.TransportContext,System.Threading.Tasks.Task},System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.PushStreamContent" /> class.</summary>
<param name="onStreamAvailable">An action that is called when an output stream is available, allowing the action to write to it directly.</param>
<param name="mediaType">The media type.</param>
</member>
<member name="M:System.Net.Http.PushStreamContent.#ctor(System.Func{System.IO.Stream,System.Net.Http.HttpContent,System.Net.TransportContext,System.Threading.Tasks.Task},System.String)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.PushStreamContent" /> class.</summary>
<param name="onStreamAvailable">An action that is called when an output stream is available, allowing the action to write to it directly.</param>
<param name="mediaType">The media type.</param>
</member>
<member name="M:System.Net.Http.PushStreamContent.SerializeToStreamAsync(System.IO.Stream,System.Net.TransportContext)">
<summary>Asynchronously serializes the push content into stream.</summary>
<returns>The serialized push content.</returns>
<param name="stream">The stream where the push content will be serialized.</param>
<param name="context">The context.</param>
</member>
<member name="M:System.Net.Http.PushStreamContent.TryComputeLength(System.Int64@)">
<summary>Determines whether the stream content has a valid length in bytes.</summary>
<returns>true if length is a valid length; otherwise, false.</returns>
<param name="length">The length in bytes of the stream content.</param>
</member>
<member name="T:System.Net.Http.UnsupportedMediaTypeException">
<summary> Defines an exception type for signalling that a request's media type was not supported. </summary>
</member>
<member name="M:System.Net.Http.UnsupportedMediaTypeException.#ctor(System.String,System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary> Initializes a new instance of the <see cref="T:System.Net.Http.UnsupportedMediaTypeException" /> class. </summary>
<param name="message">The message that describes the error.</param>
<param name="mediaType">The unsupported media type.</param>
</member>
<member name="P:System.Net.Http.UnsupportedMediaTypeException.MediaType">
<summary>Gets or sets the media type.</summary>
<returns>The media type.</returns>
</member>
<member name="T:System.Net.Http.UriExtensions">
<summary>Contains extension methods to allow strongly typed objects to be read from the query component of <see cref="T:System.Uri" /> instances. </summary>
</member>
<member name="M:System.Net.Http.UriExtensions.ParseQueryString(System.Uri)">
<summary>Parses the query portion of the specified URI.</summary>
<returns>A <see cref="T:System.Collections.Specialized.NameValueCollection" /> that contains the query parameters.</returns>
<param name="address">The URI to parse.</param>
</member>
<member name="M:System.Net.Http.UriExtensions.TryReadQueryAs(System.Uri,System.Type,System.Object@)">
<summary>Reads HTML form URL encoded data provided in the URI query string as an object of a specified type.</summary>
<returns>true if the query component of the URI can be read as the specified type; otherwise, false.</returns>
<param name="address">The URI to read.</param>
<param name="type">The type of object to read.</param>
<param name="value">When this method returns, contains an object that is initialized from the query component of the URI. This parameter is treated as uninitialized.</param>
</member>
<member name="M:System.Net.Http.UriExtensions.TryReadQueryAs``1(System.Uri,``0@)">
<summary>Reads HTML form URL encoded data provided in the URI query string as an object of a specified type.</summary>
<returns>true if the query component of the URI can be read as the specified type; otherwise, false.</returns>
<param name="address">The URI to read.</param>
<param name="value">When this method returns, contains an object that is initialized from the query component of the URI. This parameter is treated as uninitialized.</param>
<typeparam name="T">The type of object to read.</typeparam>
</member>
<member name="M:System.Net.Http.UriExtensions.TryReadQueryAsJson(System.Uri,Newtonsoft.Json.Linq.JObject@)">
<summary>Reads HTML form URL encoded data provided in the <see cref="T:System.Uri" /> query component as a <see cref="T:Newtonsoft.Json.Linq.JObject" /> object.</summary>
<returns>true if the query component can be read as <see cref="T:Newtonsoft.Json.Linq.JObject" />; otherwise false.</returns>
<param name="address">The <see cref="T:System.Uri" /> instance from which to read.</param>
<param name="value">An object to be initialized with this instance or null if the conversion cannot be performed.</param>
</member>
<member name="T:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter">
<summary>Abstract media type formatter class to support Bson and Json.</summary>
</member>
<member name="M:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter" /> class.</summary>
</member>
<member name="M:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.#ctor(System.Net.Http.Formatting.BaseJsonMediaTypeFormatter)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter" /> class.</summary>
<param name="formatter">The <see cref="T:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter" /> instance to copy settings from.</param>
</member>
<member name="M:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.CanReadType(System.Type)">
<summary>Determines whether this formatter can read objects of the specified type.</summary>
<returns>true if objects of this type can be read, otherwise false.</returns>
<param name="type">The type of object that will be read.</param>
</member>
<member name="M:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.CanWriteType(System.Type)">
<summary>Determines whether this formatter can write objects of the specified type.</summary>
<returns>true if objects of this type can be written, otherwise false.</returns>
<param name="type">The type of object to write.</param>
</member>
<member name="M:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.CreateDefaultSerializerSettings">
<summary>Creates a <see cref="T:Newtonsoft.Json.JsonSerializerSettings" /> instance with the default settings used by the <see cref="T:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter" />.</summary>
<returns>Returns <see cref="T:Newtonsoft.Json.JsonSerializerSettings" />.</returns>
</member>
<member name="M:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.CreateJsonReader(System.Type,System.IO.Stream,System.Text.Encoding)">
<summary>Called during deserialization to get the <see cref="T:Newtonsoft.Json.JsonReader" />.</summary>
<returns>The reader to use during deserialization.</returns>
<param name="type">The type of the object to read.</param>
<param name="readStream">The stream from which to read.</param>
<param name="effectiveEncoding">The encoding to use when reading.</param>
</member>
<member name="M:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.CreateJsonSerializer">
<summary>Called during serialization and deserialization to get the <see cref="T:Newtonsoft.Json.JsonSerializer" />.</summary>
<returns>The JsonSerializer used during serialization and deserialization.</returns>
</member>
<member name="M:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.CreateJsonWriter(System.Type,System.IO.Stream,System.Text.Encoding)">
<summary>Called during serialization to get the <see cref="T:Newtonsoft.Json.JsonWriter" />.</summary>
<returns>The writer to use during serialization.</returns>
<param name="type">The type of the object to write.</param>
<param name="writeStream">The stream to write to.</param>
<param name="effectiveEncoding">The encoding to use when writing.</param>
</member>
<member name="P:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.MaxDepth">
<summary>Gets or sets the maximum depth allowed by this formatter.</summary>
<returns>The maximum depth allowed by this formatter.</returns>
</member>
<member name="M:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.ReadFromStream(System.Type,System.IO.Stream,System.Text.Encoding,System.Net.Http.Formatting.IFormatterLogger)">
<summary>Called during deserialization to read an object of the specified type from the specified stream.</summary>
<returns>The object that has been read.</returns>
<param name="type">The type of the object to read.</param>
<param name="readStream">The stream from which to read.</param>
<param name="effectiveEncoding">The encoding to use when reading.</param>
<param name="formatterLogger">The logger to log events to.</param>
</member>
<member name="M:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.ReadFromStreamAsync(System.Type,System.IO.Stream,System.Net.Http.HttpContent,System.Net.Http.Formatting.IFormatterLogger)">
<summary>Called during deserialization to read an object of the specified type from the specified stream.</summary>
<returns>A task whose result will be the object instance that has been read.</returns>
<param name="type">The type of the object to read.</param>
<param name="readStream">The stream from which to read.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" /> for the content being read.</param>
<param name="formatterLogger">The logger to log events to.</param>
</member>
<member name="P:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.SerializerSettings">
<summary>Gets or sets the JsonSerializerSettings used to configure the JsonSerializer.</summary>
<returns>The JsonSerializerSettings used to configure the JsonSerializer.</returns>
</member>
<member name="M:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStream(System.Type,System.Object,System.IO.Stream,System.Text.Encoding)">
<summary>Called during serialization to write an object of the specified type to the specified stream.</summary>
<param name="type">The type of the object to write.</param>
<param name="value">The object to write.</param>
<param name="writeStream">The stream to write to.</param>
<param name="effectiveEncoding">The encoding to use when writing.</param>
</member>
<member name="M:System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStreamAsync(System.Type,System.Object,System.IO.Stream,System.Net.Http.HttpContent,System.Net.TransportContext,System.Threading.CancellationToken)">
<summary>Called during serialization to write an object of the specified type to the specified stream.</summary>
<returns>Returns <see cref="T:System.Threading.Tasks.Task" />.</returns>
<param name="type">The type of the object to write.</param>
<param name="value">The object to write.</param>
<param name="writeStream">The stream to write to.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" /> for the content being written.</param>
<param name="transportContext">The transport context.</param>
<param name="cancellationToken">The token to monitor for cancellation.</param>
</member>
<member name="T:System.Net.Http.Formatting.BsonMediaTypeFormatter">
<summary>Represents a media type formatter to handle Bson.</summary>
</member>
<member name="M:System.Net.Http.Formatting.BsonMediaTypeFormatter.#ctor">
<summary>Initializes a new instance of the<see cref="T:System.Net.Http.Formatting.BsonMediaTypeFormatter" /> class.</summary>
</member>
<member name="M:System.Net.Http.Formatting.BsonMediaTypeFormatter.#ctor(System.Net.Http.Formatting.BsonMediaTypeFormatter)">
<summary>Initializes a new instance of the<see cref="T:System.Net.Http.Formatting.BsonMediaTypeFormatter" /> class.</summary>
<param name="formatter">The formatter to copy settings from.</param>
</member>
<member name="M:System.Net.Http.Formatting.BsonMediaTypeFormatter.CreateJsonReader(System.Type,System.IO.Stream,System.Text.Encoding)">
<summary>Called during deserialization to get the <see cref="T:Newtonsoft.Json.JsonReader" />.</summary>
<returns>The reader to use during deserialization.</returns>
<param name="type">The type of the object to read.</param>
<param name="readStream">The stream from which to read.</param>
<param name="effectiveEncoding">The encoding to use when reading.</param>
</member>
<member name="M:System.Net.Http.Formatting.BsonMediaTypeFormatter.CreateJsonWriter(System.Type,System.IO.Stream,System.Text.Encoding)">
<summary>Called during serialization to get the <see cref="T:Newtonsoft.Json.JsonWriter" />.</summary>
<returns>The writer to use during serialization.</returns>
<param name="type">The type of the object to write.</param>
<param name="writeStream">The stream to write to.</param>
<param name="effectiveEncoding">The encoding to use when writing.</param>
</member>
<member name="P:System.Net.Http.Formatting.BsonMediaTypeFormatter.DefaultMediaType">
<summary>Gets the default media type for Json, namely "application/bson".</summary>
<returns>The default media type for Json, namely "application/bson".</returns>
</member>
<member name="P:System.Net.Http.Formatting.BsonMediaTypeFormatter.MaxDepth">
<summary>Gets or sets the maximum depth allowed by this formatter.</summary>
<returns>The maximum depth allowed by this formatter.</returns>
</member>
<member name="M:System.Net.Http.Formatting.BsonMediaTypeFormatter.ReadFromStream(System.Type,System.IO.Stream,System.Text.Encoding,System.Net.Http.Formatting.IFormatterLogger)">
<summary>Called during deserialization to read an object of the specified type from the specified stream.</summary>
<returns>The object that has been read.</returns>
<param name="type">The type of the object to read.</param>
<param name="readStream">The stream from which to read.</param>
<param name="effectiveEncoding">The encoding to use when reading.</param>
<param name="formatterLogger">The logger to log events to.</param>
</member>
<member name="M:System.Net.Http.Formatting.BsonMediaTypeFormatter.ReadFromStreamAsync(System.Type,System.IO.Stream,System.Net.Http.HttpContent,System.Net.Http.Formatting.IFormatterLogger)">
<summary>Called during deserialization to read an object of the specified type from the specified stream.</summary>
<returns>A task whose result will be the object instance that has been read.</returns>
<param name="type">The type of the object to read.</param>
<param name="readStream">The stream from which to read.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" /> for the content being read.</param>
<param name="formatterLogger">The logger to log events to.</param>
</member>
<member name="M:System.Net.Http.Formatting.BsonMediaTypeFormatter.WriteToStream(System.Type,System.Object,System.IO.Stream,System.Text.Encoding)">
<summary>Called during serialization to write an object of the specified type to the specified stream.</summary>
<param name="type">The type of the object to write.</param>
<param name="value">The object to write.</param>
<param name="writeStream">The stream to write to.</param>
<param name="effectiveEncoding">The encoding to use when writing.</param>
</member>
<member name="T:System.Net.Http.Formatting.BufferedMediaTypeFormatter">
<summary>Represents a helper class to allow a synchronous formatter on top of the asynchronous formatter infrastructure.</summary>
</member>
<member name="M:System.Net.Http.Formatting.BufferedMediaTypeFormatter.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.BufferedMediaTypeFormatter" /> class.</summary>
</member>
<member name="M:System.Net.Http.Formatting.BufferedMediaTypeFormatter.#ctor(System.Net.Http.Formatting.BufferedMediaTypeFormatter)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.BufferedMediaTypeFormatter" /> class.</summary>
<param name="formatter">The <see cref="T:System.Net.Http.Formatting.BufferedMediaTypeFormatter" /> instance to copy settings from.</param>
</member>
<member name="P:System.Net.Http.Formatting.BufferedMediaTypeFormatter.BufferSize">
<summary>Gets or sets the suggested size of buffer to use with streams in bytes.</summary>
<returns>The suggested size of buffer to use with streams in bytes.</returns>
</member>
<member name="M:System.Net.Http.Formatting.BufferedMediaTypeFormatter.ReadFromStream(System.Type,System.IO.Stream,System.Net.Http.HttpContent,System.Net.Http.Formatting.IFormatterLogger)">
<summary>Reads synchronously from the buffered stream.</summary>
<returns>An object of the given <paramref name="type" />.</returns>
<param name="type">The type of the object to deserialize.</param>
<param name="readStream">The stream from which to read.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" />, if available. Can be null.</param>
<param name="formatterLogger">The <see cref="T:System.Net.Http.Formatting.IFormatterLogger" /> to log events to.</param>
</member>
<member name="M:System.Net.Http.Formatting.BufferedMediaTypeFormatter.ReadFromStream(System.Type,System.IO.Stream,System.Net.Http.HttpContent,System.Net.Http.Formatting.IFormatterLogger,System.Threading.CancellationToken)">
<summary>Reads synchronously from the buffered stream.</summary>
<returns>An object of the given <paramref name="type" />.</returns>
<param name="type">The type of the object to deserialize.</param>
<param name="readStream">The stream from which to read.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" />, if available. Can be null.</param>
<param name="formatterLogger">The <see cref="T:System.Net.Http.Formatting.IFormatterLogger" /> to log events to.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
</member>
<member name="M:System.Net.Http.Formatting.BufferedMediaTypeFormatter.ReadFromStreamAsync(System.Type,System.IO.Stream,System.Net.Http.HttpContent,System.Net.Http.Formatting.IFormatterLogger)">
<summary>Reads asynchronously from the buffered stream.</summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="type">The type of the object to deserialize.</param>
<param name="readStream">The stream from which to read.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" />, if available. Can be null.</param>
<param name="formatterLogger">The <see cref="T:System.Net.Http.Formatting.IFormatterLogger" /> to log events to.</param>
</member>
<member name="M:System.Net.Http.Formatting.BufferedMediaTypeFormatter.ReadFromStreamAsync(System.Type,System.IO.Stream,System.Net.Http.HttpContent,System.Net.Http.Formatting.IFormatterLogger,System.Threading.CancellationToken)">
<summary>Reads asynchronously from the buffered stream.</summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="type">The type of the object to deserialize.</param>
<param name="readStream">The stream from which to read.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" />, if available. Can be null.</param>
<param name="formatterLogger">The <see cref="T:System.Net.Http.Formatting.IFormatterLogger" /> to log events to.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
</member>
<member name="M:System.Net.Http.Formatting.BufferedMediaTypeFormatter.WriteToStream(System.Type,System.Object,System.IO.Stream,System.Net.Http.HttpContent)">
<summary>Writes synchronously to the buffered stream.</summary>
<param name="type">The type of the object to serialize.</param>
<param name="value">The object value to write. Can be null.</param>
<param name="writeStream">The stream to which to write.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" />, if available. Can be null.</param>
</member>
<member name="M:System.Net.Http.Formatting.BufferedMediaTypeFormatter.WriteToStream(System.Type,System.Object,System.IO.Stream,System.Net.Http.HttpContent,System.Threading.CancellationToken)">
<summary>Writes synchronously to the buffered stream.</summary>
<param name="type">The type of the object to serialize.</param>
<param name="value">The object value to write. Can be null.</param>
<param name="writeStream">The stream to which to write.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" />, if available. Can be null.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
</member>
<member name="M:System.Net.Http.Formatting.BufferedMediaTypeFormatter.WriteToStreamAsync(System.Type,System.Object,System.IO.Stream,System.Net.Http.HttpContent,System.Net.TransportContext)">
<summary>Writes asynchronously to the buffered stream.</summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="type">The type of the object to serialize.</param>
<param name="value">The object value to write. It may be null.</param>
<param name="writeStream">The stream to which to write.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" />, if available. Can be null.</param>
<param name="transportContext">The transport context.</param>
</member>
<member name="M:System.Net.Http.Formatting.BufferedMediaTypeFormatter.WriteToStreamAsync(System.Type,System.Object,System.IO.Stream,System.Net.Http.HttpContent,System.Net.TransportContext,System.Threading.CancellationToken)">
<summary>Writes asynchronously to the buffered stream.</summary>
<returns>A task object representing the asynchronous operation.</returns>
<param name="type">The type of the object to serialize.</param>
<param name="value">The object value to write. It may be null.</param>
<param name="writeStream">The stream to which to write.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" />, if available. Can be null.</param>
<param name="transportContext">The transport context.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
</member>
<member name="T:System.Net.Http.Formatting.ContentNegotiationResult">
<summary> Represents the result of content negotiation performed using <see cref="M:System.Net.Http.Formatting.IContentNegotiator.Negotiate(System.Type,System.Net.Http.HttpRequestMessage,System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter})" /></summary>
</member>
<member name="M:System.Net.Http.Formatting.ContentNegotiationResult.#ctor(System.Net.Http.Formatting.MediaTypeFormatter,System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary> Create the content negotiation result object. </summary>
<param name="formatter">The formatter.</param>
<param name="mediaType">The preferred media type. Can be null.</param>
</member>
<member name="P:System.Net.Http.Formatting.ContentNegotiationResult.Formatter">
<summary> The formatter chosen for serialization. </summary>
</member>
<member name="P:System.Net.Http.Formatting.ContentNegotiationResult.MediaType">
<summary> The media type that is associated with the formatter chosen for serialization. Can be null. </summary>
</member>
<member name="T:System.Net.Http.Formatting.DefaultContentNegotiator">
<summary> The default implementation of <see cref="T:System.Net.Http.Formatting.IContentNegotiator" />, which is used to select a <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> for an <see cref="T:System.Net.Http.HttpRequestMessage" /> or <see cref="T:System.Net.Http.HttpResponseMessage" />. </summary>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.DefaultContentNegotiator" /> class.</summary>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.#ctor(System.Boolean)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.DefaultContentNegotiator" /> class.</summary>
<param name="excludeMatchOnTypeOnly">true to exclude formatters that match only on the object type; otherwise, false.</param>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.ComputeFormatterMatches(System.Type,System.Net.Http.HttpRequestMessage,System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter})">
<summary>Determines how well each formatter matches an HTTP request.</summary>
<returns>Returns a collection of <see cref="T:System.Net.Http.Formatting.MediaTypeFormatterMatch" /> objects that represent all of the matches.</returns>
<param name="type">The type to be serialized.</param>
<param name="request">The request.</param>
<param name="formatters">The set of <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> objects from which to choose.</param>
</member>
<member name="P:System.Net.Http.Formatting.DefaultContentNegotiator.ExcludeMatchOnTypeOnly">
<summary>If true, exclude formatters that match only on the object type; otherwise, false.</summary>
<returns>Returns a <see cref="T:System.Boolean" />.</returns>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.MatchAcceptHeader(System.Collections.Generic.IEnumerable{System.Net.Http.Headers.MediaTypeWithQualityHeaderValue},System.Net.Http.Formatting.MediaTypeFormatter)">
<summary>Matches a set of Accept header fields against the media types that a formatter supports.</summary>
<returns>Returns a <see cref="T:System.Net.Http.Formatting.MediaTypeFormatterMatch" /> object that indicates the quality of the match, or null if there is no match.</returns>
<param name="sortedAcceptValues">A list of Accept header values, sorted in descending order of q factor. You can create this list by calling the <see cref="M:System.Net.Http.Formatting.DefaultContentNegotiator.SortStringWithQualityHeaderValuesByQFactor(System.Collections.Generic.ICollection{System.Net.Http.Headers.StringWithQualityHeaderValue})" /> method.</param>
<param name="formatter">The formatter to match against.</param>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.MatchMediaTypeMapping(System.Net.Http.HttpRequestMessage,System.Net.Http.Formatting.MediaTypeFormatter)">
<summary>Matches a request against the <see cref="T:System.Net.Http.Formatting.MediaTypeMapping" /> objects in a media-type formatter.</summary>
<returns>Returns a <see cref="T:System.Net.Http.Formatting.MediaTypeFormatterMatch" /> object that indicates the quality of the match, or null if there is no match.</returns>
<param name="request">The request to match.</param>
<param name="formatter">The media-type formatter.</param>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.MatchRequestMediaType(System.Net.Http.HttpRequestMessage,System.Net.Http.Formatting.MediaTypeFormatter)">
<summary>Match the content type of a request against the media types that a formatter supports.</summary>
<returns>Returns a <see cref="T:System.Net.Http.Formatting.MediaTypeFormatterMatch" /> object that indicates the quality of the match, or null if there is no match.</returns>
<param name="request">The request to match.</param>
<param name="formatter">The formatter to match against.</param>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.MatchType(System.Type,System.Net.Http.Formatting.MediaTypeFormatter)">
<summary>Selects the first supported media type of a formatter.</summary>
<returns>Returns a <see cref="T:System.Net.Http.Formatting.MediaTypeFormatterMatch" /> with <see cref="P:System.Net.Http.Formatting.MediaTypeFormatterMatch.Ranking" /> set to MatchOnCanWriteType, or null if there is no match. A <see cref="T:System.Net.Http.Formatting.MediaTypeFormatterMatch" /> indicating the quality of the match or null is no match.</returns>
<param name="type">The type to match.</param>
<param name="formatter">The formatter to match against.</param>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.Negotiate(System.Type,System.Net.Http.HttpRequestMessage,System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter})">
<summary>Performs content negotiating by selecting the most appropriate <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> out of the passed in <paramref name="formatters" /> for the given <paramref name="request" /> that can serialize an object of the given <paramref name="type" />.</summary>
<returns>The result of the negotiation containing the most appropriate <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> instance, or null if there is no appropriate formatter.</returns>
<param name="type">The type to be serialized.</param>
<param name="request">The request.</param>
<param name="formatters">The set of <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> objects from which to choose.</param>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.SelectResponseCharacterEncoding(System.Net.Http.HttpRequestMessage,System.Net.Http.Formatting.MediaTypeFormatter)">
<summary>Determines the best character encoding for writing the response.</summary>
<returns>Returns the <see cref="T:System.Text.Encoding" /> that is the best match.</returns>
<param name="request">The request.</param>
<param name="formatter">The selected media formatter.</param>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.SelectResponseMediaTypeFormatter(System.Collections.Generic.ICollection{System.Net.Http.Formatting.MediaTypeFormatterMatch})">
<summary>Select the best match among the candidate matches found.</summary>
<returns>Returns the <see cref="T:System.Net.Http.Formatting.MediaTypeFormatterMatch" /> object that represents the best match. </returns>
<param name="matches">The collection of matches.</param>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.ShouldMatchOnType(System.Collections.Generic.IEnumerable{System.Net.Http.Headers.MediaTypeWithQualityHeaderValue})">
<summary> Determine whether to match on type or not. This is used to determine whether to generate a 406 response or use the default media type formatter in case there is no match against anything in the request. If ExcludeMatchOnTypeOnly is true then we don't match on type unless there are no accept headers. </summary>
<returns>True if not ExcludeMatchOnTypeOnly and accept headers with a q-factor bigger than 0.0 are present.</returns>
<param name="sortedAcceptValues">The sorted accept header values to match.</param>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.SortMediaTypeWithQualityHeaderValuesByQFactor(System.Collections.Generic.ICollection{System.Net.Http.Headers.MediaTypeWithQualityHeaderValue})">
<summary>Sorts Accept header values in descending order of q factor.</summary>
<returns>Returns the sorted list of MediaTypeWithQualityHeaderValue objects.</returns>
<param name="headerValues">A collection of StringWithQualityHeaderValue objects, representing the header fields.</param>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.SortStringWithQualityHeaderValuesByQFactor(System.Collections.Generic.ICollection{System.Net.Http.Headers.StringWithQualityHeaderValue})">
<summary>Sorts a list of Accept-Charset, Accept-Encoding, Accept-Language or related header values in descending order or q factor.</summary>
<returns>Returns the sorted list of StringWithQualityHeaderValue objects.</returns>
<param name="headerValues">A collection of StringWithQualityHeaderValue objects, representing the header fields.</param>
</member>
<member name="M:System.Net.Http.Formatting.DefaultContentNegotiator.UpdateBestMatch(System.Net.Http.Formatting.MediaTypeFormatterMatch,System.Net.Http.Formatting.MediaTypeFormatterMatch)">
<summary>Evaluates whether a match is better than the current match.</summary>
<returns>Returns whichever <see cref="T:System.Net.Http.Formatting.MediaTypeFormatterMatch" /> object is a better match.</returns>
<param name="current">The current match.</param>
<param name="potentialReplacement">The match to evaluate against the current match.</param>
</member>
<member name="T:System.Net.Http.Formatting.DelegatingEnumerable`1">
<summary> Helper class to serialize <see cref="T:System.Collections.Generic.IEnumerable`1" /> types by delegating them through a concrete implementation."/&gt;. </summary>
<typeparam name="T">The interface implementing to proxy.</typeparam>
</member>
<member name="M:System.Net.Http.Formatting.DelegatingEnumerable`1.#ctor">
<summary> Initialize a DelegatingEnumerable. This constructor is necessary for <see cref="T:System.Runtime.Serialization.DataContractSerializer" /> to work. </summary>
</member>
<member name="M:System.Net.Http.Formatting.DelegatingEnumerable`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
<summary> Initialize a DelegatingEnumerable with an <see cref="T:System.Collections.Generic.IEnumerable`1" />. This is a helper class to proxy <see cref="T:System.Collections.Generic.IEnumerable`1" /> interfaces for <see cref="T:System.Xml.Serialization.XmlSerializer" />. </summary>
<param name="source">The <see cref="T:System.Collections.Generic.IEnumerable`1" /> instance to get the enumerator from.</param>
</member>
<member name="M:System.Net.Http.Formatting.DelegatingEnumerable`1.Add(System.Object)">
<summary> This method is not implemented but is required method for serialization to work. Do not use. </summary>
<param name="item">The item to add. Unused.</param>
</member>
<member name="M:System.Net.Http.Formatting.DelegatingEnumerable`1.GetEnumerator">
<summary> Get the enumerator of the associated <see cref="T:System.Collections.Generic.IEnumerable`1" />. </summary>
<returns>The enumerator of the <see cref="T:System.Collections.Generic.IEnumerable`1" /> source.</returns>
</member>
<member name="M:System.Net.Http.Formatting.DelegatingEnumerable`1.System#Collections#IEnumerable#GetEnumerator">
<summary> Get the enumerator of the associated <see cref="T:System.Collections.Generic.IEnumerable`1" />. </summary>
<returns>The enumerator of the <see cref="T:System.Collections.Generic.IEnumerable`1" /> source.</returns>
</member>
<member name="T:System.Net.Http.Formatting.FormDataCollection">
<summary>Represent the collection of form data.</summary>
</member>
<member name="M:System.Net.Http.Formatting.FormDataCollection.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
<summary>Initializes a new instance of <see cref="T:System.Net.Http.Formatting.FormDataCollection" /> class.</summary>
<param name="pairs">The pairs.</param>
</member>
<member name="M:System.Net.Http.Formatting.FormDataCollection.#ctor(System.String)">
<summary>Initializes a new instance of <see cref="T:System.Net.Http.Formatting.FormDataCollection" /> class.</summary>
<param name="query">The query.</param>
</member>
<member name="M:System.Net.Http.Formatting.FormDataCollection.#ctor(System.Uri)">
<summary>Initializes a new instance of <see cref="T:System.Net.Http.Formatting.FormDataCollection" /> class.</summary>
<param name="uri">The URI</param>
</member>
<member name="M:System.Net.Http.Formatting.FormDataCollection.Get(System.String)">
<summary>Gets the collection of form data.</summary>
<returns>The collection of form data.</returns>
<param name="key">The key.</param>
</member>
<member name="M:System.Net.Http.Formatting.FormDataCollection.GetEnumerator">
<summary>Gets an enumerable that iterates through the collection.</summary>
<returns>The enumerable that iterates through the collection.</returns>
</member>
<member name="M:System.Net.Http.Formatting.FormDataCollection.GetValues(System.String)">
<summary>Gets the values of the collection of form data.</summary>
<returns>The values of the collection of form data.</returns>
<param name="key">The key.</param>
</member>
<member name="P:System.Net.Http.Formatting.FormDataCollection.Item(System.String)"></member>
<member name="M:System.Net.Http.Formatting.FormDataCollection.ReadAsNameValueCollection">
<summary>Reads the collection of form data as a collection of name value.</summary>
<returns>The collection of form data as a collection of name value.</returns>
</member>
<member name="M:System.Net.Http.Formatting.FormDataCollection.System#Collections#IEnumerable#GetEnumerator">
<summary>Gets an enumerable that iterates through the collection.</summary>
<returns>The enumerable that iterates through the collection.</returns>
</member>
<member name="T:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter">
<summary>
<see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> class for handling HTML form URL-ended data, also known as application/x-www-form-urlencoded. </summary>
</member>
<member name="M:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter" /> class.</summary>
</member>
<member name="M:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter.#ctor(System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter" /> class.</summary>
<param name="formatter">The <see cref="T:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter" /> instance to copy settings from.</param>
</member>
<member name="M:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter.CanReadType(System.Type)">
<summary>Queries whether the <see cref="T:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter" /> can deserializean object of the specified type.</summary>
<returns>true if the <see cref="T:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter" /> can deserialize the type; otherwise, false.</returns>
<param name="type">The type to deserialize.</param>
</member>
<member name="M:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter.CanWriteType(System.Type)">
<summary>Queries whether the <see cref="T:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter" /> can serializean object of the specified type.</summary>
<returns>true if the <see cref="T:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter" /> can serialize the type; otherwise, false.</returns>
<param name="type">The type to serialize.</param>
</member>
<member name="P:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter.DefaultMediaType">
<summary>Gets the default media type for HTML form-URL-encoded data, which is application/x-www-form-urlencoded.</summary>
<returns>The default media type for HTML form-URL-encoded data</returns>
</member>
<member name="P:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter.MaxDepth">
<summary>Gets or sets the maximum depth allowed by this formatter.</summary>
<returns>The maximum depth.</returns>
</member>
<member name="P:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter.ReadBufferSize">
<summary>Gets or sets the size of the buffer when reading the incoming stream.</summary>
<returns>The buffer size.</returns>
</member>
<member name="M:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter.ReadFromStreamAsync(System.Type,System.IO.Stream,System.Net.Http.HttpContent,System.Net.Http.Formatting.IFormatterLogger)">
<summary> Asynchronously deserializes an object of the specified type.</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task" /> whose result will be the object instance that has been read.</returns>
<param name="type">The type of object to deserialize.</param>
<param name="readStream">The <see cref="T:System.IO.Stream" /> to read.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" /> for the content being read.</param>
<param name="formatterLogger">The <see cref="T:System.Net.Http.Formatting.IFormatterLogger" /> to log events to.</param>
</member>
<member name="T:System.Net.Http.Formatting.IContentNegotiator">
<summary> Performs content negotiation. This is the process of selecting a response writer (formatter) in compliance with header values in the request. </summary>
</member>
<member name="M:System.Net.Http.Formatting.IContentNegotiator.Negotiate(System.Type,System.Net.Http.HttpRequestMessage,System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter})">
<summary> Performs content negotiating by selecting the most appropriate <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> out of the passed in formatters for the given request that can serialize an object of the given type. </summary>
<returns>The result of the negotiation containing the most appropriate <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> instance, or null if there is no appropriate formatter.</returns>
<param name="type">The type to be serialized.</param>
<param name="request">Request message, which contains the header values used to perform negotiation.</param>
<param name="formatters">The set of <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> objects from which to choose.</param>
</member>
<member name="T:System.Net.Http.Formatting.IFormatterLogger">
<summary>Specifies a callback interface that a formatter can use to log errors while reading.</summary>
</member>
<member name="M:System.Net.Http.Formatting.IFormatterLogger.LogError(System.String,System.Exception)">
<summary>Logs an error.</summary>
<param name="errorPath">The path to the member for which the error is being logged.</param>
<param name="exception">The error message.</param>
</member>
<member name="M:System.Net.Http.Formatting.IFormatterLogger.LogError(System.String,System.String)">
<summary>Logs an error.</summary>
<param name="errorPath">The path to the member for which the error is being logged.</param>
<param name="errorMessage">The error message to be logged.</param>
</member>
<member name="T:System.Net.Http.Formatting.IRequiredMemberSelector">
<summary>Defines method that determines whether a given member is required on deserialization.</summary>
</member>
<member name="M:System.Net.Http.Formatting.IRequiredMemberSelector.IsRequiredMember(System.Reflection.MemberInfo)">
<summary>Determines whether a given member is required on deserialization.</summary>
<returns>true if <paramref name="member" /> should be treated as a required member; otherwise false.</returns>
<param name="member">The <see cref="T:System.Reflection.MemberInfo" /> to be deserialized.</param>
</member>
<member name="T:System.Net.Http.Formatting.JsonContractResolver">
<summary>Represents the default <see cref="T:Newtonsoft.Json.Serialization.IContractResolver" /> used by <see cref="T:System.Net.Http.Formatting.JsonMediaTypeFormatter" />. It uses the formatter's <see cref="T:System.Net.Http.Formatting.IRequiredMemberSelector" /> to select required members and recognizes the <see cref="T:System.SerializableAttribute" /> type annotation.</summary>
</member>
<member name="M:System.Net.Http.Formatting.JsonContractResolver.#ctor(System.Net.Http.Formatting.MediaTypeFormatter)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.JsonContractResolver" /> class.</summary>
<param name="formatter">The formatter to use for resolving required members.</param>
</member>
<member name="M:System.Net.Http.Formatting.JsonContractResolver.CreateProperty(System.Reflection.MemberInfo,Newtonsoft.Json.MemberSerialization)">
<summary>Creates a property on the specified class by using the specified parameters.</summary>
<returns>A <see cref="T:Newtonsoft.Json.Serialization.JsonProperty" /> to create on the specified class by using the specified parameters.</returns>
<param name="member">The member info.</param>
<param name="memberSerialization">The member serialization.</param>
</member>
<member name="T:System.Net.Http.Formatting.JsonMediaTypeFormatter">
<summary>Represents the <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> class to handle JSON. </summary>
</member>
<member name="M:System.Net.Http.Formatting.JsonMediaTypeFormatter.#ctor">
<summary> Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.JsonMediaTypeFormatter" /> class. </summary>
</member>
<member name="M:System.Net.Http.Formatting.JsonMediaTypeFormatter.#ctor(System.Net.Http.Formatting.JsonMediaTypeFormatter)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.JsonMediaTypeFormatter" /> class.</summary>
<param name="formatter">The <see cref="T:System.Net.Http.Formatting.JsonMediaTypeFormatter" /> instance to copy settings from.</param>
</member>
<member name="M:System.Net.Http.Formatting.JsonMediaTypeFormatter.CanReadType(System.Type)">
<summary>Determines whether this <see cref="T:System.Net.Http.Formatting.JsonMediaTypeFormatter" /> can read objects of the specified <paramref name="type" />.</summary>
<returns>true if objects of this <paramref name="type" /> can be read, otherwise false.</returns>
<param name="type">The type of object that will be read.</param>
</member>
<member name="M:System.Net.Http.Formatting.JsonMediaTypeFormatter.CanWriteType(System.Type)">
<summary>Determines whether this <see cref="T:System.Net.Http.Formatting.JsonMediaTypeFormatter" /> can write objects of the specified <paramref name="type" />.</summary>
<returns>true if objects of this <paramref name="type" /> can be written, otherwise false.</returns>
<param name="type">The type of object that will be written.</param>
</member>
<member name="M:System.Net.Http.Formatting.JsonMediaTypeFormatter.CreateDataContractSerializer(System.Type)">
<summary>Called during deserialization to get the <see cref="T:System.Runtime.Serialization.Json.DataContractJsonSerializer" />.</summary>
<returns>The object used for serialization.</returns>
<param name="type">The type of object that will be serialized or deserialized.</param>
</member>
<member name="M:System.Net.Http.Formatting.JsonMediaTypeFormatter.CreateJsonReader(System.Type,System.IO.Stream,System.Text.Encoding)">
<summary>Called during deserialization to get the <see cref="T:Newtonsoft.Json.JsonReader" />.</summary>
<returns>The reader to use during deserialization.</returns>
<param name="type">The type of the object to read.</param>
<param name="readStream">The stream from which to read.</param>
<param name="effectiveEncoding">The encoding to use when reading.</param>
</member>
<member name="M:System.Net.Http.Formatting.JsonMediaTypeFormatter.CreateJsonWriter(System.Type,System.IO.Stream,System.Text.Encoding)">
<summary>Called during serialization to get the <see cref="T:Newtonsoft.Json.JsonWriter" />.</summary>
<returns>The writer to use during serialization.</returns>
<param name="type">The type of the object to write.</param>
<param name="writeStream">The stream to write to.</param>
<param name="effectiveEncoding">The encoding to use when writing.</param>
</member>
<member name="P:System.Net.Http.Formatting.JsonMediaTypeFormatter.DefaultMediaType">
<summary>Gets the default media type for JSON, namely "application/json".</summary>
<returns>The <see cref="T:System.Net.Http.Headers.MediaTypeHeaderValue" /> for JSON.</returns>
</member>
<member name="P:System.Net.Http.Formatting.JsonMediaTypeFormatter.Indent">
<summary> Gets or sets a value indicating whether to indent elements when writing data. </summary>
<returns>true if to indent elements when writing data; otherwise, false.</returns>
</member>
<member name="P:System.Net.Http.Formatting.JsonMediaTypeFormatter.MaxDepth">
<summary>Gets or sets the maximum depth allowed by this formatter.</summary>
<returns>The maximum depth allowed by this formatter.</returns>
</member>
<member name="M:System.Net.Http.Formatting.JsonMediaTypeFormatter.ReadFromStream(System.Type,System.IO.Stream,System.Text.Encoding,System.Net.Http.Formatting.IFormatterLogger)">
<summary>Called during deserialization to read an object of the specified type from the specified stream.</summary>
<returns>The object that has been read.</returns>
<param name="type">The type of the object to read.</param>
<param name="readStream">The stream from which to read.</param>
<param name="effectiveEncoding">The encoding to use when reading.</param>
<param name="formatterLogger">The logger to log events to.</param>
</member>
<member name="P:System.Net.Http.Formatting.JsonMediaTypeFormatter.UseDataContractJsonSerializer">
<summary> Gets or sets a value indicating whether to use <see cref="T:System.Runtime.Serialization.Json.DataContractJsonSerializer" /> by default. </summary>
<returns>true if to <see cref="T:System.Runtime.Serialization.Json.DataContractJsonSerializer" /> by default; otherwise, false.</returns>
</member>
<member name="M:System.Net.Http.Formatting.JsonMediaTypeFormatter.WriteToStream(System.Type,System.Object,System.IO.Stream,System.Text.Encoding)">
<summary>Called during serialization to write an object of the specified type to the specified stream.</summary>
<param name="type">The type of the object to write.</param>
<param name="value">The object to write.</param>
<param name="writeStream">The stream to write to.</param>
<param name="effectiveEncoding">The encoding to use when writing.</param>
</member>
<member name="M:System.Net.Http.Formatting.JsonMediaTypeFormatter.WriteToStreamAsync(System.Type,System.Object,System.IO.Stream,System.Net.Http.HttpContent,System.Net.TransportContext,System.Threading.CancellationToken)">
<summary>Called during serialization to write an object of the specified type to the specified stream.</summary>
<returns>Returns <see cref="T:System.Threading.Tasks.Task" />.</returns>
<param name="type">The type of the object to write.</param>
<param name="value">The object to write.</param>
<param name="writeStream">The stream to write to.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" /> for the content being written.</param>
<param name="transportContext">The transport context.</param>
<param name="cancellationToken">The token to monitor for cancellation.</param>
</member>
<member name="T:System.Net.Http.Formatting.MediaTypeFormatter">
<summary> Base class to handle serializing and deserializing strongly-typed objects using <see cref="T:System.Net.Http.ObjectContent" />. </summary>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatter.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> class.</summary>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatter.#ctor(System.Net.Http.Formatting.MediaTypeFormatter)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> class.</summary>
<param name="formatter">The <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> instance to copy settings from.</param>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatter.CanReadType(System.Type)">
<summary>Queries whether this <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> can deserializean object of the specified type.</summary>
<returns>true if the <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> can deserialize the type; otherwise, false.</returns>
<param name="type">The type to deserialize.</param>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatter.CanWriteType(System.Type)">
<summary>Queries whether this <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> can serializean object of the specified type.</summary>
<returns>true if the <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> can serialize the type; otherwise, false.</returns>
<param name="type">The type to serialize.</param>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatter.GetDefaultValueForType(System.Type)">
<summary>Gets the default value for the specified type.</summary>
<returns>The default value.</returns>
<param name="type">The type for which to get the default value.</param>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatter.GetPerRequestFormatterInstance(System.Type,System.Net.Http.HttpRequestMessage,System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary>Returns a specialized instance of the <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> that can format a response for the given parameters.</summary>
<returns>Returns <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" />.</returns>
<param name="type">The type to format.</param>
<param name="request">The request.</param>
<param name="mediaType">The media type.</param>
</member>
<member name="P:System.Net.Http.Formatting.MediaTypeFormatter.MaxHttpCollectionKeys">
<summary>Gets or sets the maximum number of keys stored in a T: <see cref="System.Collections.Specialized.NameValueCollection" />.</summary>
<returns>The maximum number of keys.</returns>
</member>
<member name="P:System.Net.Http.Formatting.MediaTypeFormatter.MediaTypeMappings">
<summary>Gets the mutable collection of <see cref="T:System.Net.Http.Formatting.MediaTypeMapping" /> objects that match HTTP requests to media types.</summary>
<returns>The <see cref="T:System.Net.Http.Formatting.MediaTypeMapping" /> collection.</returns>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatter.ReadFromStreamAsync(System.Type,System.IO.Stream,System.Net.Http.HttpContent,System.Net.Http.Formatting.IFormatterLogger)">
<summary>Asynchronously deserializes an object of the specified type.</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task" /> whose result will be an object of the given type.</returns>
<param name="type">The type of the object to deserialize.</param>
<param name="readStream">The <see cref="T:System.IO.Stream" /> to read.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" />, if available. It may be null.</param>
<param name="formatterLogger">The <see cref="T:System.Net.Http.Formatting.IFormatterLogger" /> to log events to.</param>
<exception cref="T:System.NotSupportedException">Derived types need to support reading.</exception>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatter.ReadFromStreamAsync(System.Type,System.IO.Stream,System.Net.Http.HttpContent,System.Net.Http.Formatting.IFormatterLogger,System.Threading.CancellationToken)">
<summary>Asynchronously deserializes an object of the specified type.</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task" /> whose result will be an object of the given type.</returns>
<param name="type">The type of the object to deserialize.</param>
<param name="readStream">The <see cref="T:System.IO.Stream" /> to read.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" />, if available. It may be null.</param>
<param name="formatterLogger">The <see cref="T:System.Net.Http.Formatting.IFormatterLogger" /> to log events to.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
</member>
<member name="P:System.Net.Http.Formatting.MediaTypeFormatter.RequiredMemberSelector">
<summary>Gets or sets the <see cref="T:System.Net.Http.Formatting.IRequiredMemberSelector" /> instance used to determine required members.</summary>
<returns>The <see cref="T:System.Net.Http.Formatting.IRequiredMemberSelector" /> instance.</returns>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatter.SelectCharacterEncoding(System.Net.Http.Headers.HttpContentHeaders)">
<summary>Determines the best character encoding for reading or writing an HTTP entity body, given a set of content headers.</summary>
<returns>The encoding that is the best match.</returns>
<param name="contentHeaders">The content headers.</param>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatter.SetDefaultContentHeaders(System.Type,System.Net.Http.Headers.HttpContentHeaders,System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary> Sets the default headers for content that will be formatted using this formatter. This method is called from the <see cref="T:System.Net.Http.ObjectContent" /> constructor. This implementation sets the Content-Type header to the value of mediaType if it is not null. If it is null it sets the Content-Type to the default media type of this formatter. If the Content-Type does not specify a charset it will set it using this formatters configured <see cref="T:System.Text.Encoding" />. </summary>
<param name="type">The type of the object being serialized. See <see cref="T:System.Net.Http.ObjectContent" />.</param>
<param name="headers">The content headers that should be configured.</param>
<param name="mediaType">The authoritative media type. Can be null.</param>
</member>
<member name="P:System.Net.Http.Formatting.MediaTypeFormatter.SupportedEncodings">
<summary>Gets the mutable collection of character encodings supported bythis <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" />.</summary>
<returns>The collection of <see cref="T:System.Text.Encoding" /> objects.</returns>
</member>
<member name="P:System.Net.Http.Formatting.MediaTypeFormatter.SupportedMediaTypes">
<summary>Gets the mutable collection of media types supported bythis <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" />.</summary>
<returns>The collection of <see cref="T:System.Net.Http.Headers.MediaTypeHeaderValue" /> objects.</returns>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatter.WriteToStreamAsync(System.Type,System.Object,System.IO.Stream,System.Net.Http.HttpContent,System.Net.TransportContext)">
<summary>Asynchronously writes an object of the specified type.</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task" /> that will perform the write.</returns>
<param name="type">The type of the object to write.</param>
<param name="value">The object value to write. It may be null.</param>
<param name="writeStream">The <see cref="T:System.IO.Stream" /> to which to write.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" /> if available. It may be null.</param>
<param name="transportContext">The <see cref="T:System.Net.TransportContext" /> if available. It may be null.</param>
<exception cref="T:System.NotSupportedException">Derived types need to support writing.</exception>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatter.WriteToStreamAsync(System.Type,System.Object,System.IO.Stream,System.Net.Http.HttpContent,System.Net.TransportContext,System.Threading.CancellationToken)">
<summary>Asynchronously writes an object of the specified type.</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task" /> that will perform the write.</returns>
<param name="type">The type of the object to write.</param>
<param name="value">The object value to write. It may be null.</param>
<param name="writeStream">The <see cref="T:System.IO.Stream" /> to which to write.</param>
<param name="content">The <see cref="T:System.Net.Http.HttpContent" /> if available. It may be null.</param>
<param name="transportContext">The <see cref="T:System.Net.TransportContext" /> if available. It may be null.</param>
<param name="cancellationToken">The token to cancel the operation.</param>
<exception cref="T:System.NotSupportedException">Derived types need to support writing.</exception>
</member>
<member name="T:System.Net.Http.Formatting.MediaTypeFormatterCollection">
<summary> Collection class that contains <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> instances. </summary>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterCollection.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.MediaTypeFormatterCollection" /> class.</summary>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterCollection.#ctor(System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter})">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.MediaTypeFormatterCollection" /> class.</summary>
<param name="formatters">A collection of <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> instances to place in the collection.</param>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterCollection.ClearItems">
<summary>Removes all items in the collection.</summary>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterCollection.FindReader(System.Type,System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary>Helper to search a collection for a formatter that can read the .NET type in the given mediaType.</summary>
<returns>The formatter that can read the type. Null if no formatter found.</returns>
<param name="type">The .NET type to read</param>
<param name="mediaType">The media type to match on.</param>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterCollection.FindWriter(System.Type,System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary>Helper to search a collection for a formatter that can write the .NET type in the given mediaType.</summary>
<returns>The formatter that can write the type. Null if no formatter found.</returns>
<param name="type">The .NET type to read</param>
<param name="mediaType">The media type to match on.</param>
</member>
<member name="P:System.Net.Http.Formatting.MediaTypeFormatterCollection.FormUrlEncodedFormatter">
<summary>Gets the <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> to use for application/x-www-form-urlencoded data.</summary>
<returns>The <see cref="T:System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter" />to use for application/x-www-form-urlencoded data.</returns>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterCollection.InsertItem(System.Int32,System.Net.Http.Formatting.MediaTypeFormatter)">
<summary>Inserts the specified item at the specified index in the collection.</summary>
<param name="index">The index to insert at.</param>
<param name="item">The item to insert.</param>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterCollection.IsTypeExcludedFromValidation(System.Type)">
<summary>Returns true if the type is one of those loosely defined types that should be excluded from validation.</summary>
<returns>true if the type should be excluded; otherwise, false.</returns>
<param name="type">The .NET <see cref="T:System.Type" /> to validate.</param>
</member>
<member name="P:System.Net.Http.Formatting.MediaTypeFormatterCollection.JsonFormatter">
<summary>Gets the <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> to use for JSON.</summary>
<returns>The <see cref="T:System.Net.Http.Formatting.JsonMediaTypeFormatter" /> to use for JSON.</returns>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterCollection.RemoveItem(System.Int32)">
<summary>Removes the item at the specified index.</summary>
<param name="index">The index of the item to remove.</param>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterCollection.SetItem(System.Int32,System.Net.Http.Formatting.MediaTypeFormatter)">
<summary>Assigns the item at the specified index in the collection.</summary>
<param name="index">The index to insert at.</param>
<param name="item">The item to assign.</param>
</member>
<member name="P:System.Net.Http.Formatting.MediaTypeFormatterCollection.XmlFormatter">
<summary>Gets the <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> to use for XML.</summary>
<returns>The <see cref="T:System.Net.Http.Formatting.XmlMediaTypeFormatter" />to use for XML.</returns>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterExtensions.AddQueryStringMapping(System.Net.Http.Formatting.MediaTypeFormatter,System.String,System.String,System.Net.Http.Headers.MediaTypeHeaderValue)"></member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterExtensions.AddQueryStringMapping(System.Net.Http.Formatting.MediaTypeFormatter,System.String,System.String,System.String)"></member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterExtensions.AddRequestHeaderMapping(System.Net.Http.Formatting.MediaTypeFormatter,System.String,System.String,System.StringComparison,System.Boolean,System.Net.Http.Headers.MediaTypeHeaderValue)"></member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterExtensions.AddRequestHeaderMapping(System.Net.Http.Formatting.MediaTypeFormatter,System.String,System.String,System.StringComparison,System.Boolean,System.String)"></member>
<member name="T:System.Net.Http.Formatting.MediaTypeFormatterMatch">
<summary> This class describes how well a particular <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> matches a request. </summary>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeFormatterMatch.#ctor(System.Net.Http.Formatting.MediaTypeFormatter,System.Net.Http.Headers.MediaTypeHeaderValue,System.Nullable{System.Double},System.Net.Http.Formatting.MediaTypeFormatterMatchRanking)">
<summary> Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.MediaTypeFormatterMatch" /> class. </summary>
<param name="formatter">The matching formatter.</param>
<param name="mediaType">The media type. Can be null in which case the media type application/octet-stream is used.</param>
<param name="quality">The quality of the match. Can be null in which case it is considered a full match with a value of 1.0</param>
<param name="ranking">The kind of match.</param>
</member>
<member name="P:System.Net.Http.Formatting.MediaTypeFormatterMatch.Formatter">
<summary> Gets the media type formatter. </summary>
</member>
<member name="P:System.Net.Http.Formatting.MediaTypeFormatterMatch.MediaType">
<summary> Gets the matched media type. </summary>
</member>
<member name="P:System.Net.Http.Formatting.MediaTypeFormatterMatch.Quality">
<summary> Gets the quality of the match </summary>
</member>
<member name="P:System.Net.Http.Formatting.MediaTypeFormatterMatch.Ranking">
<summary> Gets the kind of match that occurred. </summary>
</member>
<member name="T:System.Net.Http.Formatting.MediaTypeFormatterMatchRanking">
<summary> Contains information about the degree to which a <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> matches the explicit or implicit preferences found in an incoming request. </summary>
</member>
<member name="F:System.Net.Http.Formatting.MediaTypeFormatterMatchRanking.MatchOnCanWriteType">
<summary> Matched on a type, meaning that the formatter is able to serialize the type.</summary>
</member>
<member name="F:System.Net.Http.Formatting.MediaTypeFormatterMatchRanking.MatchOnRequestAcceptHeaderAllMediaRange">
<summary>Matched on an explicit “*/*” range in the Accept header.</summary>
</member>
<member name="F:System.Net.Http.Formatting.MediaTypeFormatterMatchRanking.MatchOnRequestAcceptHeaderLiteral">
<summary>Matched on an explicit literal accept header, such as “application/json”.</summary>
</member>
<member name="F:System.Net.Http.Formatting.MediaTypeFormatterMatchRanking.MatchOnRequestAcceptHeaderSubtypeMediaRange">
<summary>Matched on an explicit subtype range in an Accept header, such as “application/*”.</summary>
</member>
<member name="F:System.Net.Http.Formatting.MediaTypeFormatterMatchRanking.MatchOnRequestMediaType">
<summary> Matched on the media type of the entity body in the HTTP request message.</summary>
</member>
<member name="F:System.Net.Http.Formatting.MediaTypeFormatterMatchRanking.MatchOnRequestWithMediaTypeMapping">
<summary> Matched on <see cref="T:System.Net.Http.HttpRequestMessage" /> after having applied the various <see cref="T:System.Net.Http.Formatting.MediaTypeMapping" />s. </summary>
</member>
<member name="F:System.Net.Http.Formatting.MediaTypeFormatterMatchRanking.None">
<summary> No match was found </summary>
</member>
<member name="T:System.Net.Http.Formatting.MediaTypeMapping">
<summary> An abstract base class used to create an association between <see cref="T:System.Net.Http.HttpRequestMessage" /> or <see cref="T:System.Net.Http.HttpResponseMessage" /> instances that have certain characteristics and a specific <see cref="T:System.Net.Http.Headers.MediaTypeHeaderValue" />. </summary>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeMapping.#ctor(System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary> Initializes a new instance of a <see cref="T:System.Net.Http.Formatting.MediaTypeMapping" /> with the given mediaType value. </summary>
<param name="mediaType"> The <see cref="T:System.Net.Http.Headers.MediaTypeHeaderValue" /> that is associated with <see cref="T:System.Net.Http.HttpRequestMessage" /> or <see cref="T:System.Net.Http.HttpResponseMessage" /> instances that have the given characteristics of the <see cref="T:System.Net.Http.Formatting.MediaTypeMapping" />. </param>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeMapping.#ctor(System.String)">
<summary> Initializes a new instance of a <see cref="T:System.Net.Http.Formatting.MediaTypeMapping" /> with the given mediaType value. </summary>
<param name="mediaType"> The <see cref="T:System.String" /> that is associated with <see cref="T:System.Net.Http.HttpRequestMessage" /> or <see cref="T:System.Net.Http.HttpResponseMessage" /> instances that have the given characteristics of the <see cref="T:System.Net.Http.Formatting.MediaTypeMapping" />. </param>
</member>
<member name="P:System.Net.Http.Formatting.MediaTypeMapping.MediaType">
<summary> Gets the <see cref="T:System.Net.Http.Headers.MediaTypeHeaderValue" /> that is associated with <see cref="T:System.Net.Http.HttpRequestMessage" /> or <see cref="T:System.Net.Http.HttpResponseMessage" /> instances that have the given characteristics of the <see cref="T:System.Net.Http.Formatting.MediaTypeMapping" />. </summary>
</member>
<member name="M:System.Net.Http.Formatting.MediaTypeMapping.TryMatchMediaType(System.Net.Http.HttpRequestMessage)">
<summary> Returns the quality of the match of the <see cref="T:System.Net.Http.Headers.MediaTypeHeaderValue" /> associated with request. </summary>
<returns> The quality of the match. It must be between 0.0 and 1.0. A value of 0.0 signifies no match. A value of 1.0 signifies a complete match. </returns>
<param name="request"> The <see cref="T:System.Net.Http.HttpRequestMessage" /> to evaluate for the characteristics associated with the <see cref="T:System.Net.Http.Headers.MediaTypeHeaderValue" /> of the <see cref="T:System.Net.Http.Formatting.MediaTypeMapping" />. </param>
</member>
<member name="T:System.Net.Http.Formatting.QueryStringMapping">
<summary> Class that provides <see cref="T:System.Net.Http.Headers.MediaTypeHeaderValue" />s from query strings. </summary>
</member>
<member name="M:System.Net.Http.Formatting.QueryStringMapping.#ctor(System.String,System.String,System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary> Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.QueryStringMapping" /> class. </summary>
<param name="queryStringParameterName">The name of the query string parameter to match, if present.</param>
<param name="queryStringParameterValue">The value of the query string parameter specified by queryStringParameterName.</param>
<param name="mediaType">The <see cref="T:System.Net.Http.Headers.MediaTypeHeaderValue" /> to use if the query parameter specified by queryStringParameterName is present and assigned the value specified by queryStringParameterValue.</param>
</member>
<member name="M:System.Net.Http.Formatting.QueryStringMapping.#ctor(System.String,System.String,System.String)">
<summary> Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.QueryStringMapping" /> class. </summary>
<param name="queryStringParameterName">The name of the query string parameter to match, if present.</param>
<param name="queryStringParameterValue">The value of the query string parameter specified by queryStringParameterName.</param>
<param name="mediaType">The media type to use if the query parameter specified by queryStringParameterName is present and assigned the value specified by queryStringParameterValue.</param>
</member>
<member name="P:System.Net.Http.Formatting.QueryStringMapping.QueryStringParameterName">
<summary> Gets the query string parameter name. </summary>
</member>
<member name="P:System.Net.Http.Formatting.QueryStringMapping.QueryStringParameterValue">
<summary> Gets the query string parameter value. </summary>
</member>
<member name="M:System.Net.Http.Formatting.QueryStringMapping.TryMatchMediaType(System.Net.Http.HttpRequestMessage)">
<summary> Returns a value indicating whether the current <see cref="T:System.Net.Http.Formatting.QueryStringMapping" /> instance can return a <see cref="T:System.Net.Http.Headers.MediaTypeHeaderValue" /> from request. </summary>
<returns>If this instance can produce a <see cref="T:System.Net.Http.Headers.MediaTypeHeaderValue" /> from request it returns 1.0 otherwise 0.0.</returns>
<param name="request">The <see cref="T:System.Net.Http.HttpRequestMessage" /> to check.</param>
</member>
<member name="T:System.Net.Http.Formatting.RequestHeaderMapping">
<summary> This class provides a mapping from an arbitrary HTTP request header field to a <see cref="T:System.Net.Http.Headers.MediaTypeHeaderValue" /> used to select <see cref="T:System.Net.Http.Formatting.MediaTypeFormatter" /> instances for handling the entity body of an <see cref="T:System.Net.Http.HttpRequestMessage" /> or <see cref="T:System.Net.Http.HttpResponseMessage" />. <remarks>This class only checks header fields associated with <see cref="M:HttpRequestMessage.Headers" /> for a match. It does not check header fields associated with <see cref="M:HttpResponseMessage.Headers" /> or <see cref="M:HttpContent.Headers" /> instances.</remarks></summary>
</member>
<member name="M:System.Net.Http.Formatting.RequestHeaderMapping.#ctor(System.String,System.String,System.StringComparison,System.Boolean,System.Net.Http.Headers.MediaTypeHeaderValue)">
<summary> Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.RequestHeaderMapping" /> class. </summary>
<param name="headerName">Name of the header to match.</param>
<param name="headerValue">The header value to match.</param>
<param name="valueComparison">The <see cref="T:System.StringComparison" /> to use when matching headerValue.</param>
<param name="isValueSubstring">if set to true then headerValue is considered a match if it matches a substring of the actual header value.</param>
<param name="mediaType">The <see cref="T:System.Net.Http.Headers.MediaTypeHeaderValue" /> to use if headerName and headerValue is considered a match.</param>
</member>
<member name="M:System.Net.Http.Formatting.RequestHeaderMapping.#ctor(System.String,System.String,System.StringComparison,System.Boolean,System.String)">
<summary> Initializes a new instance of the <see cref="T:System.Net.Http.Formatting.RequestHeaderMapping" /> class. </summary>
<param name="headerName">Name of the header to match.</param>
<param name="headerValue">The header value to match.</param>
<param name="valueComparison">The value comparison to use when matching headerValue.</param>
<param name="isValueSubstring">if set to true then headerValue is consider
gitextract_aho6g0tw/
├── .gitattributes
├── .gitignore
├── HMACAuthentication.Client/
│ ├── App.config
│ ├── HMACAuthentication.Client.csproj
│ ├── Order.cs
│ ├── Program.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ └── packages.config
├── HMACAuthentication.WebApi/
│ ├── App_Start/
│ │ └── WebApiConfig.cs
│ ├── Controllers/
│ │ └── OrdersController.cs
│ ├── Filters/
│ │ └── HMACAuthenticationAttribute.cs
│ ├── Global.asax
│ ├── Global.asax.cs
│ ├── HMACAuthentication.WebApi.csproj
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ └── packages.config
├── README.md
├── WebApiHMACAuthentication.sln
└── packages/
├── Microsoft.AspNet.WebApi.5.1.2/
│ └── Microsoft.AspNet.WebApi.5.1.2.nupkg
├── Microsoft.AspNet.WebApi.Client.5.1.2/
│ ├── Microsoft.AspNet.WebApi.Client.5.1.2.nupkg
│ └── lib/
│ ├── net45/
│ │ └── System.Net.Http.Formatting.xml
│ └── portable-wp8%2Bnetcore45%2Bnet45/
│ └── System.Net.Http.Formatting.xml
├── Microsoft.AspNet.WebApi.Client.5.2.2/
│ ├── Microsoft.AspNet.WebApi.Client.5.2.2.nupkg
│ └── lib/
│ ├── net45/
│ │ └── System.Net.Http.Formatting.xml
│ └── portable-wp8+netcore45+net45+wp81+wpa81/
│ └── System.Net.Http.Formatting.xml
├── Microsoft.AspNet.WebApi.Core.5.1.2/
│ ├── Content/
│ │ └── web.config.transform
│ ├── Microsoft.AspNet.WebApi.Core.5.1.2.nupkg
│ └── lib/
│ └── net45/
│ └── System.Web.Http.xml
├── Microsoft.AspNet.WebApi.WebHost.5.1.2/
│ ├── Microsoft.AspNet.WebApi.WebHost.5.1.2.nupkg
│ └── lib/
│ └── net45/
│ └── System.Web.Http.WebHost.xml
├── Newtonsoft.Json.5.0.6/
│ ├── Newtonsoft.Json.5.0.6.nupkg
│ └── lib/
│ ├── net20/
│ │ └── Newtonsoft.Json.xml
│ ├── net35/
│ │ └── Newtonsoft.Json.xml
│ ├── net40/
│ │ └── Newtonsoft.Json.xml
│ ├── net45/
│ │ └── Newtonsoft.Json.xml
│ ├── netcore45/
│ │ └── Newtonsoft.Json.xml
│ ├── portable-net40%2Bsl4%2Bwp7%2Bwin8/
│ │ └── Newtonsoft.Json.xml
│ └── portable-net45%2Bwp80%2Bwin8/
│ └── Newtonsoft.Json.xml
├── Newtonsoft.Json.6.0.4/
│ ├── Newtonsoft.Json.6.0.4.nupkg
│ ├── lib/
│ │ ├── net20/
│ │ │ └── Newtonsoft.Json.xml
│ │ ├── net35/
│ │ │ └── Newtonsoft.Json.xml
│ │ ├── net40/
│ │ │ └── Newtonsoft.Json.xml
│ │ ├── net45/
│ │ │ └── Newtonsoft.Json.xml
│ │ ├── netcore45/
│ │ │ └── Newtonsoft.Json.xml
│ │ ├── portable-net40+sl5+wp80+win8+wpa81/
│ │ │ └── Newtonsoft.Json.xml
│ │ └── portable-net45+wp80+win8+wpa81/
│ │ └── Newtonsoft.Json.xml
│ └── tools/
│ └── install.ps1
└── repositories.config
SYMBOL INDEX (27 symbols across 6 files)
FILE: HMACAuthentication.Client/Order.cs
class Order (line 9) | public class Order
FILE: HMACAuthentication.Client/Program.cs
class Program (line 13) | class Program
method Main (line 15) | static void Main(string[] args)
method RunAsync (line 20) | static async Task RunAsync()
class CustomDelegatingHandler (line 49) | public class CustomDelegatingHandler : DelegatingHandler
method SendAsync (line 55) | protected async override Task<HttpResponseMessage> SendAsync(HttpReq...
method GenerateAPPKey (line 104) | private void GenerateAPPKey()
FILE: HMACAuthentication.WebApi/App_Start/WebApiConfig.cs
class WebApiConfig (line 8) | public static class WebApiConfig
method Register (line 10) | public static void Register(HttpConfiguration config)
FILE: HMACAuthentication.WebApi/Controllers/OrdersController.cs
class OrdersController (line 12) | [HMACAuthentication]
method Get (line 16) | [Route("")]
method Post (line 26) | [Route("")]
class Order (line 36) | public class Order
method CreateOrders (line 44) | public static List<Order> CreateOrders()
FILE: HMACAuthentication.WebApi/Filters/HMACAuthenticationAttribute.cs
class HMACAuthenticationAttribute (line 19) | public class HMACAuthenticationAttribute : Attribute, IAuthenticationFilter
method HMACAuthenticationAttribute (line 25) | public HMACAuthenticationAttribute()
method AuthenticateAsync (line 33) | public Task AuthenticateAsync(HttpAuthenticationContext context, Cance...
method ChallengeAsync (line 75) | public Task ChallengeAsync(HttpAuthenticationChallengeContext context,...
method GetAutherizationHeaderValues (line 86) | private string[] GetAutherizationHeaderValues(string rawAuthzHeader)
method isValidRequest (line 102) | private async Task<bool> isValidRequest(HttpRequestMessage req, string...
method isReplayRequest (line 142) | private bool isReplayRequest(string nonce, string requestTimeStamp)
method ComputeHash (line 165) | private static async Task<byte[]> ComputeHash(HttpContent httpContent)
class ResultWithChallenge (line 180) | public class ResultWithChallenge : IHttpActionResult
method ResultWithChallenge (line 185) | public ResultWithChallenge(IHttpActionResult next)
method ExecuteAsync (line 190) | public async Task<HttpResponseMessage> ExecuteAsync(CancellationToken ...
FILE: HMACAuthentication.WebApi/Global.asax.cs
class WebApiApplication (line 10) | public class WebApiApplication : System.Web.HttpApplication
method Application_Start (line 12) | protected void Application_Start()
Condensed preview — 51 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (8,066K chars).
[
{
"path": ".gitattributes",
"chars": 2518,
"preview": "###############################################################################\n# Set default behavior to automatically "
},
{
"path": ".gitignore",
"chars": 2233,
"preview": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n\n# User"
},
{
"path": "HMACAuthentication.Client/App.config",
"chars": 180,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<configuration>\n <startup> \n <supportedRuntime version=\"v4.0\" sku=\".N"
},
{
"path": "HMACAuthentication.Client/HMACAuthentication.Client.csproj",
"chars": 3311,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "HMACAuthentication.Client/Order.cs",
"chars": 378,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "HMACAuthentication.Client/Program.cs",
"chars": 4798,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Net.Http.Headers"
},
{
"path": "HMACAuthentication.Client/Properties/AssemblyInfo.cs",
"chars": 1423,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Infor"
},
{
"path": "HMACAuthentication.Client/packages.config",
"chars": 227,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n <package id=\"Microsoft.AspNet.WebApi.Client\" version=\"5.2.2\" target"
},
{
"path": "HMACAuthentication.WebApi/App_Start/WebApiConfig.cs",
"chars": 308,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web.Http;\n\nnamespace HMACAuthentication"
},
{
"path": "HMACAuthentication.WebApi/Controllers/OrdersController.cs",
"chars": 1816,
"preview": "using HMACAuthentication.WebApi.Filters;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing Syste"
},
{
"path": "HMACAuthentication.WebApi/Filters/HMACAuthenticationAttribute.cs",
"chars": 6916,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net;\nusing System.Net.Http;\nusing Syste"
},
{
"path": "HMACAuthentication.WebApi/Global.asax",
"chars": 117,
"preview": "<%@ Application Codebehind=\"Global.asax.cs\" Inherits=\"HMACAuthentication.WebApi.WebApiApplication\" Language=\"C#\" %>\n"
},
{
"path": "HMACAuthentication.WebApi/Global.asax.cs",
"chars": 381,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web;\nusing System.Web.Http;\nusing Syste"
},
{
"path": "HMACAuthentication.WebApi/HMACAuthentication.WebApi.csproj",
"chars": 5943,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "HMACAuthentication.WebApi/Properties/AssemblyInfo.cs",
"chars": 1383,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Infor"
},
{
"path": "HMACAuthentication.WebApi/Web.Debug.config",
"chars": 1270,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<!-- For more information on using web.config transformation visit http://go.mic"
},
{
"path": "HMACAuthentication.WebApi/Web.Release.config",
"chars": 1330,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<!-- For more information on using web.config transformation visit http://go.mic"
},
{
"path": "HMACAuthentication.WebApi/Web.config",
"chars": 1983,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n For more information on how to configure your ASP.NET application, please"
},
{
"path": "HMACAuthentication.WebApi/packages.config",
"chars": 489,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n <package id=\"Microsoft.AspNet.WebApi\" version=\"5.1.2\" targetFramewo"
},
{
"path": "README.md",
"chars": 254,
"preview": "ASP.NET Web API HMAC Authentication (API Key Authentication)\n========================\n\nProject shows how to secure ASP.N"
},
{
"path": "WebApiHMACAuthentication.sln",
"chars": 1543,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2013\nVisualStudioVersion = 12.0.30501.0\nMi"
},
{
"path": "packages/Microsoft.AspNet.WebApi.Client.5.1.2/lib/net45/System.Net.Http.Formatting.xml",
"chars": 183301,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<doc>\n <assembly>\n <name>System.Net.Http.Formatting</name>\n </assembly>\n <"
},
{
"path": "packages/Microsoft.AspNet.WebApi.Client.5.1.2/lib/portable-wp8%2Bnetcore45%2Bnet45/System.Net.Http.Formatting.xml",
"chars": 275930,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>System.Net.Http.Formatting</name>\n </assembly>\n <members>"
},
{
"path": "packages/Microsoft.AspNet.WebApi.Client.5.2.2/lib/net45/System.Net.Http.Formatting.xml",
"chars": 190511,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<doc>\n <assembly>\n <name>System.Net.Http.Formatting</name>\n </assembly>\n <"
},
{
"path": "packages/Microsoft.AspNet.WebApi.Client.5.2.2/lib/portable-wp8+netcore45+net45+wp81+wpa81/System.Net.Http.Formatting.xml",
"chars": 275930,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>System.Net.Http.Formatting</name>\n </assembly>\n <members>"
},
{
"path": "packages/Microsoft.AspNet.WebApi.Core.5.1.2/Content/web.config.transform",
"chars": 472,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n <system.webServer>\n <handlers>\n <remove name=\"Extensio"
},
{
"path": "packages/Microsoft.AspNet.WebApi.Core.5.1.2/lib/net45/System.Web.Http.xml",
"chars": 523160,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<doc>\n <assembly>\n <name>System.Web.Http</name>\n </assembly>\n <members>\n "
},
{
"path": "packages/Microsoft.AspNet.WebApi.WebHost.5.1.2/lib/net45/System.Web.Http.WebHost.xml",
"chars": 10231,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<doc>\n <assembly>\n <name>System.Web.Http.WebHost</name>\n </assembly>\n <mem"
},
{
"path": "packages/Newtonsoft.Json.5.0.6/lib/net20/Newtonsoft.Json.xml",
"chars": 495137,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.5.0.6/lib/net35/Newtonsoft.Json.xml",
"chars": 439438,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.5.0.6/lib/net40/Newtonsoft.Json.xml",
"chars": 456211,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.5.0.6/lib/net45/Newtonsoft.Json.xml",
"chars": 456211,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.5.0.6/lib/netcore45/Newtonsoft.Json.xml",
"chars": 426437,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.5.0.6/lib/portable-net40%2Bsl4%2Bwp7%2Bwin8/Newtonsoft.Json.xml",
"chars": 403843,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.5.0.6/lib/portable-net45%2Bwp80%2Bwin8/Newtonsoft.Json.xml",
"chars": 426437,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.6.0.4/lib/net20/Newtonsoft.Json.xml",
"chars": 506924,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.6.0.4/lib/net35/Newtonsoft.Json.xml",
"chars": 451549,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.6.0.4/lib/net40/Newtonsoft.Json.xml",
"chars": 470166,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.6.0.4/lib/net45/Newtonsoft.Json.xml",
"chars": 470166,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.6.0.4/lib/netcore45/Newtonsoft.Json.xml",
"chars": 440445,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.6.0.4/lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.xml",
"chars": 417873,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.6.0.4/lib/portable-net45+wp80+win8+wpa81/Newtonsoft.Json.xml",
"chars": 440464,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Newtonsoft.Json</name>\n </assembly>\n <members>\n <m"
},
{
"path": "packages/Newtonsoft.Json.6.0.4/tools/install.ps1",
"chars": 3137,
"preview": "param($installPath, $toolsPath, $package, $project)\n\n# open json.net splash page on package install\n# don't open if json"
},
{
"path": "packages/repositories.config",
"chars": 208,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<repositories>\n <repository path=\"..\\HMACAuthentication.Client\\packages.config\""
}
]
// ... and 7 more files (download for full content)
About this extraction
This page contains the full source code of the tjoudeh/WebApiHMACAuthentication GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 51 files (7.4 MB), approximately 2.0M tokens, and a symbol index with 27 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.