Showing preview only (4,832K chars total). Download the full file or copy to clipboard to get everything.
Repository: tjoudeh/JWTAspNetWebApi
Branch: master
Commit: 5f84d3c466e5
Files: 67
Total size: 4.6 MB
Directory structure:
gitextract__vbstad9/
├── .gitattributes
├── .gitignore
├── AuthorizationServer.Api/
│ ├── AudiencesStore.cs
│ ├── AuthorizationServer.Api.csproj
│ ├── Controllers/
│ │ └── AudienceController.cs
│ ├── Entities/
│ │ └── Audience.cs
│ ├── Formats/
│ │ └── CustomJwtFormat.cs
│ ├── Models/
│ │ └── AudienceModel.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ └── PublishProfiles/
│ │ ├── JwtAuthZSrv - FTP (2).pubxml
│ │ ├── JwtAuthZSrv - FTP.pubxml
│ │ ├── JwtAuthZSrv - Web Deploy (2).pubxml
│ │ └── JwtAuthZSrv - Web Deploy.pubxml
│ ├── Providers/
│ │ └── CustomOAuthProvider.cs
│ ├── Startup.cs
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ └── packages.config
├── JsonWebTokensWebApi.sln
├── README.md
├── ResourceServer.Api/
│ ├── Controllers/
│ │ └── ProtectedController.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── ResourceServer.Api.csproj
│ ├── Startup.cs
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ └── packages.config
└── packages/
├── Microsoft.AspNet.Cors.5.0.0/
│ └── Microsoft.AspNet.Cors.5.0.0.nupkg
├── Microsoft.AspNet.WebApi.5.2.2/
│ └── Microsoft.AspNet.WebApi.5.2.2.nupkg
├── 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.2.2/
│ ├── Content/
│ │ └── web.config.transform
│ ├── Microsoft.AspNet.WebApi.Core.5.2.2.nupkg
│ └── lib/
│ └── net45/
│ └── System.Web.Http.xml
├── Microsoft.AspNet.WebApi.Owin.5.2.2/
│ ├── Microsoft.AspNet.WebApi.Owin.5.2.2.nupkg
│ └── lib/
│ └── net45/
│ └── System.Web.Http.Owin.xml
├── Microsoft.AspNet.WebApi.WebHost.5.2.2/
│ ├── Microsoft.AspNet.WebApi.WebHost.5.2.2.nupkg
│ └── lib/
│ └── net45/
│ └── System.Web.Http.WebHost.xml
├── Microsoft.Owin.3.0.0/
│ ├── Microsoft.Owin.3.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── Microsoft.Owin.XML
├── Microsoft.Owin.Cors.3.0.0/
│ ├── Microsoft.Owin.Cors.3.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── Microsoft.Owin.Cors.XML
├── Microsoft.Owin.Host.SystemWeb.3.0.0/
│ ├── Microsoft.Owin.Host.SystemWeb.3.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── Microsoft.Owin.Host.SystemWeb.xml
├── Microsoft.Owin.Security.3.0.0/
│ ├── Microsoft.Owin.Security.3.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── Microsoft.Owin.Security.XML
├── Microsoft.Owin.Security.Jwt.3.0.0/
│ ├── Microsoft.Owin.Security.Jwt.3.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── Microsoft.Owin.Security.Jwt.xml
├── Microsoft.Owin.Security.OAuth.3.0.0/
│ ├── Microsoft.Owin.Security.OAuth.3.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── Microsoft.Owin.Security.OAuth.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
├── Owin.1.0/
│ └── Owin.1.0.nupkg
├── System.IdentityModel.Tokens.Jwt.4.0.0/
│ ├── System.IdentityModel.Tokens.Jwt.4.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── System.IdentityModel.Tokens.Jwt.Xml
├── Thinktecture.IdentityModel.Core.1.2.0/
│ └── Thinktecture.IdentityModel.Core.1.2.0.nupkg
└── 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: AuthorizationServer.Api/AudiencesStore.cs
================================================
using AuthorizationServer.Api.Entities;
using Microsoft.Owin.Security.DataHandler.Encoder;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Web;
namespace AuthorizationServer.Api
{
public static class AudiencesStore
{
public static ConcurrentDictionary<string, Audience> AudiencesList = new ConcurrentDictionary<string, Audience>();
static AudiencesStore()
{
AudiencesList.TryAdd("099153c2625149bc8ecb3e85e03f0022",
new Audience { ClientId = "099153c2625149bc8ecb3e85e03f0022",
Base64Secret = "IxrAjDoa2FqElO7IhrSrUJELhUckePEPVpaePlS_Xaw",
Name = "ResourceServer.Api 1" });
}
public static Audience AddAudience(string name)
{
var clientId = Guid.NewGuid().ToString("N");
var key = new byte[32];
RNGCryptoServiceProvider.Create().GetBytes(key);
var base64Secret = TextEncodings.Base64Url.Encode(key);
Audience newAudience = new Audience { ClientId = clientId, Base64Secret = base64Secret, Name = name };
AudiencesList.TryAdd(clientId, newAudience);
return newAudience;
}
public static Audience FindAudience(string clientId)
{
Audience audience = null;
if (AudiencesList.TryGetValue(clientId, out audience))
{
return audience;
}
return null;
}
}
}
================================================
FILE: AuthorizationServer.Api/AuthorizationServer.Api.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>{EFEA857C-7465-42FD-B3F5-3B225863E9E6}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>AuthorizationServer.Api</RootNamespace>
<AssemblyName>AuthorizationServer.Api</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="Microsoft.Owin">
<HintPath>..\packages\Microsoft.Owin.3.0.0\lib\net45\Microsoft.Owin.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Cors">
<HintPath>..\packages\Microsoft.Owin.Cors.3.0.0\lib\net45\Microsoft.Owin.Cors.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Host.SystemWeb">
<HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.3.0.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security">
<HintPath>..\packages\Microsoft.Owin.Security.3.0.0\lib\net45\Microsoft.Owin.Security.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security.OAuth">
<HintPath>..\packages\Microsoft.Owin.Security.OAuth.3.0.0\lib\net45\Microsoft.Owin.Security.OAuth.dll</HintPath>
</Reference>
<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="Owin">
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
</Reference>
<Reference Include="System.IdentityModel" />
<Reference Include="System.IdentityModel.Tokens.Jwt">
<HintPath>..\packages\System.IdentityModel.Tokens.Jwt.4.0.0\lib\net45\System.IdentityModel.Tokens.Jwt.dll</HintPath>
</Reference>
<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.Cors">
<HintPath>..\packages\Microsoft.AspNet.Cors.5.0.0\lib\net45\System.Web.Cors.dll</HintPath>
</Reference>
<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.Web.Http, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.2\lib\net45\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http.Owin">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.2\lib\net45\System.Web.Http.Owin.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http.WebHost, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.2\lib\net45\System.Web.Http.WebHost.dll</HintPath>
</Reference>
<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" />
<Reference Include="Thinktecture.IdentityModel.Core">
<HintPath>..\packages\Thinktecture.IdentityModel.Core.1.2.0\lib\net45\Thinktecture.IdentityModel.Core.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Include="packages.config" />
<None Include="Properties\PublishProfiles\JwtAuthZSrv - FTP %282%29.pubxml" />
<None Include="Properties\PublishProfiles\JwtAuthZSrv - FTP.pubxml" />
<None Include="Properties\PublishProfiles\JwtAuthZSrv - Web Deploy %282%29.pubxml" />
<None Include="Properties\PublishProfiles\JwtAuthZSrv - Web Deploy.pubxml" />
<None Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
</None>
<None Include="Web.Release.config">
<DependentUpon>Web.config</DependentUpon>
</None>
</ItemGroup>
<ItemGroup>
<Content Include="Web.config" />
</ItemGroup>
<ItemGroup>
<Compile Include="AudiencesStore.cs" />
<Compile Include="Controllers\AudienceController.cs" />
<Compile Include="Entities\Audience.cs" />
<Compile Include="Formats\CustomJwtFormat.cs" />
<Compile Include="Models\AudienceModel.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Providers\CustomOAuthProvider.cs" />
<Compile Include="Startup.cs" />
</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>18292</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:18292/</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: AuthorizationServer.Api/Controllers/AudienceController.cs
================================================
using AuthorizationServer.Api.Entities;
using AuthorizationServer.Api.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace AuthorizationServer.Api.Controllers
{
[RoutePrefix("api/audience")]
public class AudienceController : ApiController
{
[Route("")]
public IHttpActionResult Post(AudienceModel audienceModel)
{
if (!ModelState.IsValid) {
return BadRequest(ModelState);
}
Audience newAudience = AudiencesStore.AddAudience(audienceModel.Name);
return Ok<Audience>(newAudience);
}
}
}
================================================
FILE: AuthorizationServer.Api/Entities/Audience.cs
================================================
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace AuthorizationServer.Api.Entities
{
public class Audience
{
[Key]
[MaxLength(32)]
public string ClientId { get; set; }
[MaxLength(80)]
[Required]
public string Base64Secret { get; set; }
[MaxLength(100)]
[Required]
public string Name { get; set; }
}
}
================================================
FILE: AuthorizationServer.Api/Formats/CustomJwtFormat.cs
================================================
using AuthorizationServer.Api.Entities;
using Microsoft.Owin;
using Microsoft.Owin.Security;
using Microsoft.Owin.Security.DataHandler.Encoder;
using System;
using System.Collections.Generic;
using System.IdentityModel.Tokens;
using System.Linq;
using System.Web;
using Thinktecture.IdentityModel.Tokens;
namespace AuthorizationServer.Api.Formats
{
public class CustomJwtFormat : ISecureDataFormat<AuthenticationTicket>
{
private const string AudiencePropertyKey = "audience";
private readonly string _issuer = string.Empty;
public CustomJwtFormat(string issuer)
{
_issuer = issuer;
}
public string Protect(AuthenticationTicket data)
{
if (data == null)
{
throw new ArgumentNullException("data");
}
string audienceId = data.Properties.Dictionary.ContainsKey(AudiencePropertyKey) ? data.Properties.Dictionary[AudiencePropertyKey] : null;
if (string.IsNullOrWhiteSpace(audienceId)) throw new InvalidOperationException("AuthenticationTicket.Properties does not include audience");
Audience audience = AudiencesStore.FindAudience(audienceId);
string symmetricKeyAsBase64 = audience.Base64Secret;
var keyByteArray = TextEncodings.Base64Url.Decode(symmetricKeyAsBase64);
var signingKey = new HmacSigningCredentials(keyByteArray);
var issued = data.Properties.IssuedUtc;
var expires = data.Properties.ExpiresUtc;
var token = new JwtSecurityToken(_issuer, audienceId, data.Identity.Claims, issued.Value.UtcDateTime, expires.Value.UtcDateTime, signingKey);
var handler = new JwtSecurityTokenHandler();
var jwt = handler.WriteToken(token);
return jwt;
}
public AuthenticationTicket Unprotect(string protectedText)
{
throw new NotImplementedException();
}
}
}
================================================
FILE: AuthorizationServer.Api/Models/AudienceModel.cs
================================================
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace AuthorizationServer.Api.Models
{
public class AudienceModel
{
[MaxLength(100)]
[Required]
public string Name { get; set; }
}
}
================================================
FILE: AuthorizationServer.Api/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("AuthorizationServer.Api")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AuthorizationServer.Api")]
[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("ef2839cf-e33a-41d2-bffc-86f95290754f")]
// 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: AuthorizationServer.Api/Properties/PublishProfiles/JwtAuthZSrv - FTP (2).pubxml
================================================
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FTP</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>http://jwtauthzsrv.azurewebsites.net</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>ftp://waws-prod-bay-013.ftp.azurewebsites.windows.net</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
<FtpPassiveMode>True</FtpPassiveMode>
<FtpSitePath>site/wwwroot</FtpSitePath>
<UserName>JwtAuthZSrv\$JwtAuthZSrv</UserName>
<_SavePWD>True</_SavePWD>
</PropertyGroup>
</Project>
================================================
FILE: AuthorizationServer.Api/Properties/PublishProfiles/JwtAuthZSrv - FTP.pubxml
================================================
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FTP</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>http://jwtauthzsrv.azurewebsites.net</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>ftp://waws-prod-bay-013.ftp.azurewebsites.windows.net</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
<FtpPassiveMode>True</FtpPassiveMode>
<FtpSitePath>site/wwwroot</FtpSitePath>
<UserName>JwtAuthZSrv\$JwtAuthZSrv</UserName>
<_SavePWD>True</_SavePWD>
</PropertyGroup>
</Project>
================================================
FILE: AuthorizationServer.Api/Properties/PublishProfiles/JwtAuthZSrv - Web Deploy (2).pubxml
================================================
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>http://jwtauthzsrv.azurewebsites.net</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<MSDeployServiceURL>jwtauthzsrv.scm.azurewebsites.net:443</MSDeployServiceURL>
<DeployIisAppPath>JwtAuthZSrv</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<UserName>$JwtAuthZSrv</UserName>
<_SavePWD>False</_SavePWD>
</PropertyGroup>
</Project>
================================================
FILE: AuthorizationServer.Api/Properties/PublishProfiles/JwtAuthZSrv - Web Deploy.pubxml
================================================
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>http://jwtauthzsrv.azurewebsites.net</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<MSDeployServiceURL>jwtauthzsrv.scm.azurewebsites.net:443</MSDeployServiceURL>
<DeployIisAppPath>JwtAuthZSrv</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<UserName>$JwtAuthZSrv</UserName>
<_SavePWD>False</_SavePWD>
</PropertyGroup>
</Project>
================================================
FILE: AuthorizationServer.Api/Providers/CustomOAuthProvider.cs
================================================
using Microsoft.Owin;
using Microsoft.Owin.Security;
using Microsoft.Owin.Security.OAuth;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using System.Web;
namespace AuthorizationServer.Api.Providers
{
public class CustomOAuthProvider : OAuthAuthorizationServerProvider
{
public override Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
{
string clientId = string.Empty;
string clientSecret = string.Empty;
string symmetricKeyAsBase64 = string.Empty;
if (!context.TryGetBasicCredentials(out clientId, out clientSecret))
{
context.TryGetFormCredentials(out clientId, out clientSecret);
}
if (context.ClientId == null)
{
context.SetError("invalid_clientId", "client_Id is not set");
return Task.FromResult<object>(null);
}
var audience = AudiencesStore.FindAudience(context.ClientId);
if (audience == null)
{
context.SetError("invalid_clientId", string.Format("Invalid client_id '{0}'", context.ClientId));
return Task.FromResult<object>(null);
}
context.Validated();
return Task.FromResult<object>(null);
}
public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });
//Dummy check here, you need to do your DB checks against membership system http://bit.ly/SPAAuthCode
if (context.UserName != context.Password)
{
context.SetError("invalid_grant", "The user name or password is incorrect");
//return;
return Task.FromResult<object>(null);
}
var identity = new ClaimsIdentity("JWT");
identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));
identity.AddClaim(new Claim("sub", context.UserName));
identity.AddClaim(new Claim(ClaimTypes.Role, "Manager"));
identity.AddClaim(new Claim(ClaimTypes.Role, "Supervisor"));
var props = new AuthenticationProperties(new Dictionary<string, string>
{
{
"audience", (context.ClientId == null) ? string.Empty : context.ClientId
}
});
var ticket = new AuthenticationTicket(identity, props);
context.Validated(ticket);
return Task.FromResult<object>(null);
}
}
}
================================================
FILE: AuthorizationServer.Api/Startup.cs
================================================
using AuthorizationServer.Api.Formats;
using AuthorizationServer.Api.Providers;
using Microsoft.Owin;
using Microsoft.Owin.Security.OAuth;
using Owin;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
namespace AuthorizationServer.Api
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
// Web API routes
config.MapHttpAttributeRoutes();
ConfigureOAuth(app);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(config);
}
public void ConfigureOAuth(IAppBuilder app)
{
OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
{
//For Dev enviroment only (on production should be AllowInsecureHttp = false)
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/oauth2/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(30),
Provider = new CustomOAuthProvider(),
AccessTokenFormat = new CustomJwtFormat("http://jwtauthzsrv.azurewebsites.net")
};
// OAuth 2.0 Bearer Access Token Generation
app.UseOAuthAuthorizationServer(OAuthServerOptions);
}
}
}
================================================
FILE: AuthorizationServer.Api/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: AuthorizationServer.Api/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: AuthorizationServer.Api/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=169433
-->
<configuration>
<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="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
================================================
FILE: AuthorizationServer.Api/packages.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.AspNet.Cors" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.Owin" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Cors" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Security" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Security.OAuth" version="3.0.0" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
<package id="Owin" version="1.0" targetFramework="net45" />
<package id="System.IdentityModel.Tokens.Jwt" version="4.0.0" targetFramework="net45" />
<package id="Thinktecture.IdentityModel.Core" version="1.2.0" targetFramework="net45" />
</packages>
================================================
FILE: JsonWebTokensWebApi.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}") = "AuthorizationServer.Api", "AuthorizationServer.Api\AuthorizationServer.Api.csproj", "{EFEA857C-7465-42FD-B3F5-3B225863E9E6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceServer.Api", "ResourceServer.Api\ResourceServer.Api.csproj", "{4021D184-5A67-4520-986D-A8B9475C24E0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{EFEA857C-7465-42FD-B3F5-3B225863E9E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EFEA857C-7465-42FD-B3F5-3B225863E9E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EFEA857C-7465-42FD-B3F5-3B225863E9E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EFEA857C-7465-42FD-B3F5-3B225863E9E6}.Release|Any CPU.Build.0 = Release|Any CPU
{4021D184-5A67-4520-986D-A8B9475C24E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4021D184-5A67-4520-986D-A8B9475C24E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4021D184-5A67-4520-986D-A8B9475C24E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4021D184-5A67-4520-986D-A8B9475C24E0}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: README.md
================================================
JSON Web Tokens (JWT) in ASP.NET Web Api
===============
Tutorial shows how to Issue JSON Web Token in ASP.NET Web API 2 and Owin middleware, then build list of Resource Servers relies on the Token Issuer Party (Authorization Server)
================================================
FILE: ResourceServer.Api/Controllers/ProtectedController.cs
================================================
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 ResourceServer.Api.Controllers
{
[Authorize]
[RoutePrefix("api/protected")]
public class ProtectedController : ApiController
{
[Route("")]
public IEnumerable<object> Get()
{
var identity = User.Identity as ClaimsIdentity;
return identity.Claims.Select(c => new
{
Type = c.Type,
Value = c.Value
});
}
}
}
================================================
FILE: ResourceServer.Api/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("ResourceServer.Api")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ResourceServer.Api")]
[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("b437dd1a-97ed-4b24-95cb-4e7a2f212c4c")]
// 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: ResourceServer.Api/ResourceServer.Api.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>{4021D184-5A67-4520-986D-A8B9475C24E0}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ResourceServer.Api</RootNamespace>
<AssemblyName>ResourceServer.Api</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="Microsoft.Owin">
<HintPath>..\packages\Microsoft.Owin.3.0.0\lib\net45\Microsoft.Owin.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Cors">
<HintPath>..\packages\Microsoft.Owin.Cors.3.0.0\lib\net45\Microsoft.Owin.Cors.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Host.SystemWeb">
<HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.3.0.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security">
<HintPath>..\packages\Microsoft.Owin.Security.3.0.0\lib\net45\Microsoft.Owin.Security.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security.Jwt">
<HintPath>..\packages\Microsoft.Owin.Security.Jwt.3.0.0\lib\net45\Microsoft.Owin.Security.Jwt.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security.OAuth">
<HintPath>..\packages\Microsoft.Owin.Security.OAuth.3.0.0\lib\net45\Microsoft.Owin.Security.OAuth.dll</HintPath>
</Reference>
<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="Owin">
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
</Reference>
<Reference Include="System.IdentityModel.Tokens.Jwt">
<HintPath>..\packages\System.IdentityModel.Tokens.Jwt.4.0.0\lib\net45\System.IdentityModel.Tokens.Jwt.dll</HintPath>
</Reference>
<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.Cors">
<HintPath>..\packages\Microsoft.AspNet.Cors.5.0.0\lib\net45\System.Web.Cors.dll</HintPath>
</Reference>
<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.Web.Http, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.2\lib\net45\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http.Owin">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.2\lib\net45\System.Web.Http.Owin.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http.WebHost, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.2\lib\net45\System.Web.Http.WebHost.dll</HintPath>
</Reference>
<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>
<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>
<Content Include="Web.config" />
</ItemGroup>
<ItemGroup>
<Compile Include="Controllers\ProtectedController.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Startup.cs" />
</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>18303</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:18303/</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: ResourceServer.Api/Startup.cs
================================================
using Microsoft.Owin.Security;
using Microsoft.Owin.Security.DataHandler.Encoder;
using Microsoft.Owin.Security.Jwt;
using Microsoft.Owin.Security.OAuth;
using Owin;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Web;
using System.Web.Http;
namespace ResourceServer.Api
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
ConfigureOAuth(app);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(config);
}
public void ConfigureOAuth(IAppBuilder app)
{
var issuer = "http://jwtauthzsrv.azurewebsites.net";
var audience = "099153c2625149bc8ecb3e85e03f0022";
var secret = TextEncodings.Base64Url.Decode("IxrAjDoa2FqElO7IhrSrUJELhUckePEPVpaePlS_Xaw");
// Api controllers with an [Authorize] attribute will be validated with JWT
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { audience },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret)
},
Provider = new OAuthBearerAuthenticationProvider
{
OnValidateIdentity = context =>
{
context.Ticket.Identity.AddClaim(new System.Security.Claims.Claim("newCustomClaim", "newValue"));
return Task.FromResult<object>(null);
}
}
});
}
}
}
================================================
FILE: ResourceServer.Api/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: ResourceServer.Api/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: ResourceServer.Api/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=169433
-->
<configuration>
<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="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
================================================
FILE: ResourceServer.Api/packages.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.AspNet.Cors" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.Owin" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Cors" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Security" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Security.Jwt" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Security.OAuth" version="3.0.0" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
<package id="Owin" version="1.0" targetFramework="net45" />
<package id="System.IdentityModel.Tokens.Jwt" version="4.0.0" targetFramework="net45" />
</packages>
================================================
FILE: packages/Microsoft.AspNet.WebApi.Client.5.2.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.MultipartFormDataRemoteStreamProvider">
<summary>A <see cref="T:System.Net.Http.MultipartStreamProvider" /> implementation suited for use with HTML file uploads for writing file content to a remote storage <see cref="T:System.IO.Stream" />. The stream provider looks at the Content-Disposition header field and determines an output remote <see cref="T:System.IO.Stream" /> based on the presence of a filename parameter. If a filename parameter is present in the Content-Disposition header field, then the body part is written to a remote <see cref="T:System.IO.Stream" /> provided by <see cref="M:System.Net.Http.MultipartFormDataRemoteStreamProvider.GetRemoteStream(System.Net.Http.HttpContent,System.Net.Http.Headers.HttpContentHeaders)" />. Otherwise it is written to a <see cref="T:System.IO.MemoryStream" />.</summary>
</member>
<member name="M:System.Net.Http.MultipartFormDataRemoteStreamProvider.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.MultipartFormDataRemoteStreamProvider" /> class.</summary>
</member>
<member name="M:System.Net.Http.MultipartFormDataRemoteStreamProvider.ExecutePostProcessingAsync">
<summary>Read the non-file contents as form data.</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the post processing.</returns>
</member>
<member name="M:System.Net.Http.MultipartFormDataRemoteStreamProvider.ExecutePostProcessingAsync(System.Threading.CancellationToken)">
<summary>Read the non-file contents as form data.</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the post processing.</returns>
<param name="cancellationToken">The token to monitor for cancellation requests.</param>
</member>
<member name="P:System.Net.Http.MultipartFormDataRemoteStreamProvider.FileData">
<summary>Gets a collection of file data passed as part of the multipart form data.</summary>
</member>
<member name="P:System.Net.Http.MultipartFormDataRemoteStreamProvider.FormData">
<summary>Gets a <see cref="T:System.Collections.Specialized.NameValueCollection" /> of form data passed as part of the multipart form data.</summary>
</member>
<member name="M:System.Net.Http.MultipartFormDataRemoteStreamProvider.GetRemoteStream(System.Net.Http.HttpContent,System.Net.Http.Headers.HttpContentHeaders)">
<summary>Provides a <see cref="T:System.Net.Http.RemoteStreamInfo" /> for <see cref="M:System.Net.Http.MultipartFormDataRemoteStreamProvider.GetStream(System.Net.Http.HttpContent,System.Net.Http.Headers.HttpContentHeaders)" />. Override this method to provide a remote stream to which the data should be written.</summary>
<returns>A result specifying a remote stream where the file will be written to and a location where the file can be accessed. It cannot be null and the stream must be writable.</returns>
<param name="parent">The parent <see cref="T:System.Net.Http.HttpContent" /> MIME multipart instance.</param>
<param name="headers">The header fields describing the body part's content.</param>
</member>
<member name="M:System.Net.Http.MultipartFormDataRemoteStreamProvider.GetStream(System.Net.Http.HttpContent,System.Net.Http.Headers.HttpContentHeaders)"></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.MultipartRemoteFileData">
<summary>Represents a multipart file data for remote storage.</summary>
</member>
<member name="M:System.Net.Http.MultipartRemoteFileData.#ctor(System.Net.Http.Headers.HttpContentHeaders,System.String,System.String)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.MultipartRemoteFileData" /> class.</summary>
<param name="headers">The headers of the multipart file data.</param>
<param name="location">The remote file's location.</param>
<param name="fileName">The remote file's name.</param>
</member>
<member name="P:System.Net.Http.MultipartRemoteFileData.FileName">
<summary>Gets the remote file's name.</summary>
</member>
<member name="P:System.Net.Http.MultipartRemoteFileData.Headers">
<summary>Gets the headers of the multipart file data.</summary>
</member>
<member name="P:System.Net.Http.MultipartRemoteFileData.Location">
<summary>Gets the remote file's location.</summary>
</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.RemoteStreamInfo">
<summary>Represents the result for <see cref="M:System.Net.Http.MultipartFormDataRemoteStreamProvider.GetRemoteStream(System.Net.Http.HttpContent,System.Net.Http.Headers.HttpContentHeaders)" />.</summary>
</member>
<member name="M:System.Net.Http.RemoteStreamInfo.#ctor(System.IO.Stream,System.String,System.String)">
<summary>Initializes a new instance of the <see cref="T:System.Net.Http.RemoteStreamInfo" /> class.</summary>
<param name="remoteStream">The remote stream instance where the file will be written to.</param>
<param name="location">The remote file's location.</param>
<param name="fileName">The remote file's name.</param>
</member>
<member name="P:System.Net.Http.RemoteStreamInfo.FileName">
<summary>Gets the remote file's location.</summary>
</member>
<member name="P:System.Net.Http.RemoteStreamInfo.Location">
<summary>Gets the remote file's location.</summary>
</member>
<member name="P:System.Net.Http.RemoteStreamInfo.RemoteStream">
<summary>Gets the remote stream instance where the file will be written to.</summary>
</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)">
<summary>Gets values associated with a given key. If there are multiple values, they're concatenated.</summary>
<returns>Values associated with a given key. If there are multiple values, they're concatenated.</returns>
</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 head
gitextract__vbstad9/
├── .gitattributes
├── .gitignore
├── AuthorizationServer.Api/
│ ├── AudiencesStore.cs
│ ├── AuthorizationServer.Api.csproj
│ ├── Controllers/
│ │ └── AudienceController.cs
│ ├── Entities/
│ │ └── Audience.cs
│ ├── Formats/
│ │ └── CustomJwtFormat.cs
│ ├── Models/
│ │ └── AudienceModel.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ └── PublishProfiles/
│ │ ├── JwtAuthZSrv - FTP (2).pubxml
│ │ ├── JwtAuthZSrv - FTP.pubxml
│ │ ├── JwtAuthZSrv - Web Deploy (2).pubxml
│ │ └── JwtAuthZSrv - Web Deploy.pubxml
│ ├── Providers/
│ │ └── CustomOAuthProvider.cs
│ ├── Startup.cs
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ └── packages.config
├── JsonWebTokensWebApi.sln
├── README.md
├── ResourceServer.Api/
│ ├── Controllers/
│ │ └── ProtectedController.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── ResourceServer.Api.csproj
│ ├── Startup.cs
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ └── packages.config
└── packages/
├── Microsoft.AspNet.Cors.5.0.0/
│ └── Microsoft.AspNet.Cors.5.0.0.nupkg
├── Microsoft.AspNet.WebApi.5.2.2/
│ └── Microsoft.AspNet.WebApi.5.2.2.nupkg
├── 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.2.2/
│ ├── Content/
│ │ └── web.config.transform
│ ├── Microsoft.AspNet.WebApi.Core.5.2.2.nupkg
│ └── lib/
│ └── net45/
│ └── System.Web.Http.xml
├── Microsoft.AspNet.WebApi.Owin.5.2.2/
│ ├── Microsoft.AspNet.WebApi.Owin.5.2.2.nupkg
│ └── lib/
│ └── net45/
│ └── System.Web.Http.Owin.xml
├── Microsoft.AspNet.WebApi.WebHost.5.2.2/
│ ├── Microsoft.AspNet.WebApi.WebHost.5.2.2.nupkg
│ └── lib/
│ └── net45/
│ └── System.Web.Http.WebHost.xml
├── Microsoft.Owin.3.0.0/
│ ├── Microsoft.Owin.3.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── Microsoft.Owin.XML
├── Microsoft.Owin.Cors.3.0.0/
│ ├── Microsoft.Owin.Cors.3.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── Microsoft.Owin.Cors.XML
├── Microsoft.Owin.Host.SystemWeb.3.0.0/
│ ├── Microsoft.Owin.Host.SystemWeb.3.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── Microsoft.Owin.Host.SystemWeb.xml
├── Microsoft.Owin.Security.3.0.0/
│ ├── Microsoft.Owin.Security.3.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── Microsoft.Owin.Security.XML
├── Microsoft.Owin.Security.Jwt.3.0.0/
│ ├── Microsoft.Owin.Security.Jwt.3.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── Microsoft.Owin.Security.Jwt.xml
├── Microsoft.Owin.Security.OAuth.3.0.0/
│ ├── Microsoft.Owin.Security.OAuth.3.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── Microsoft.Owin.Security.OAuth.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
├── Owin.1.0/
│ └── Owin.1.0.nupkg
├── System.IdentityModel.Tokens.Jwt.4.0.0/
│ ├── System.IdentityModel.Tokens.Jwt.4.0.0.nupkg
│ └── lib/
│ └── net45/
│ └── System.IdentityModel.Tokens.Jwt.Xml
├── Thinktecture.IdentityModel.Core.1.2.0/
│ └── Thinktecture.IdentityModel.Core.1.2.0.nupkg
└── repositories.config
SYMBOL INDEX (23 symbols across 9 files)
FILE: AuthorizationServer.Api/AudiencesStore.cs
class AudiencesStore (line 12) | public static class AudiencesStore
method AudiencesStore (line 16) | static AudiencesStore()
method AddAudience (line 24) | public static Audience AddAudience(string name)
method FindAudience (line 37) | public static Audience FindAudience(string clientId)
FILE: AuthorizationServer.Api/Controllers/AudienceController.cs
class AudienceController (line 12) | [RoutePrefix("api/audience")]
method Post (line 15) | [Route("")]
FILE: AuthorizationServer.Api/Entities/Audience.cs
class Audience (line 9) | public class Audience
FILE: AuthorizationServer.Api/Formats/CustomJwtFormat.cs
class CustomJwtFormat (line 14) | public class CustomJwtFormat : ISecureDataFormat<AuthenticationTicket>
method CustomJwtFormat (line 20) | public CustomJwtFormat(string issuer)
method Protect (line 25) | public string Protect(AuthenticationTicket data)
method Unprotect (line 56) | public AuthenticationTicket Unprotect(string protectedText)
FILE: AuthorizationServer.Api/Models/AudienceModel.cs
class AudienceModel (line 9) | public class AudienceModel
FILE: AuthorizationServer.Api/Providers/CustomOAuthProvider.cs
class CustomOAuthProvider (line 13) | public class CustomOAuthProvider : OAuthAuthorizationServerProvider
method ValidateClientAuthentication (line 16) | public override Task ValidateClientAuthentication(OAuthValidateClientA...
method GrantResourceOwnerCredentials (line 45) | public override Task GrantResourceOwnerCredentials(OAuthGrantResourceO...
FILE: AuthorizationServer.Api/Startup.cs
class Startup (line 14) | public class Startup
method Configuration (line 16) | public void Configuration(IAppBuilder app)
method ConfigureOAuth (line 31) | public void ConfigureOAuth(IAppBuilder app)
FILE: ResourceServer.Api/Controllers/ProtectedController.cs
class ProtectedController (line 11) | [Authorize]
method Get (line 15) | [Route("")]
FILE: ResourceServer.Api/Startup.cs
class Startup (line 15) | public class Startup
method Configuration (line 17) | public void Configuration(IAppBuilder app)
method ConfigureOAuth (line 31) | public void ConfigureOAuth(IAppBuilder app)
Condensed preview — 67 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,979K 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": "AuthorizationServer.Api/AudiencesStore.cs",
"chars": 1658,
"preview": "using AuthorizationServer.Api.Entities;\nusing Microsoft.Owin.Security.DataHandler.Encoder;\nusing System;\nusing System.C"
},
{
"path": "AuthorizationServer.Api/AuthorizationServer.Api.csproj",
"chars": 8547,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "AuthorizationServer.Api/Controllers/AudienceController.cs",
"chars": 698,
"preview": "using AuthorizationServer.Api.Entities;\nusing AuthorizationServer.Api.Models;\nusing System;\nusing System.Collections.Ge"
},
{
"path": "AuthorizationServer.Api/Entities/Audience.cs",
"chars": 494,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel.DataAnnotations;\nusing System.Linq;\nusing S"
},
{
"path": "AuthorizationServer.Api/Formats/CustomJwtFormat.cs",
"chars": 1987,
"preview": "using AuthorizationServer.Api.Entities;\nusing Microsoft.Owin;\nusing Microsoft.Owin.Security;\nusing Microsoft.Owin.Secur"
},
{
"path": "AuthorizationServer.Api/Models/AudienceModel.cs",
"chars": 304,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel.DataAnnotations;\nusing System.Linq;\nusing S"
},
{
"path": "AuthorizationServer.Api/Properties/AssemblyInfo.cs",
"chars": 1379,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Infor"
},
{
"path": "AuthorizationServer.Api/Properties/PublishProfiles/JwtAuthZSrv - FTP (2).pubxml",
"chars": 1095,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nThis file is used by the publish/package process of your Web project. You c"
},
{
"path": "AuthorizationServer.Api/Properties/PublishProfiles/JwtAuthZSrv - FTP.pubxml",
"chars": 1095,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nThis file is used by the publish/package process of your Web project. You c"
},
{
"path": "AuthorizationServer.Api/Properties/PublishProfiles/JwtAuthZSrv - Web Deploy (2).pubxml",
"chars": 1203,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nThis file is used by the publish/package process of your Web project. You c"
},
{
"path": "AuthorizationServer.Api/Properties/PublishProfiles/JwtAuthZSrv - Web Deploy.pubxml",
"chars": 1203,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nThis file is used by the publish/package process of your Web project. You c"
},
{
"path": "AuthorizationServer.Api/Providers/CustomOAuthProvider.cs",
"chars": 2807,
"preview": "using Microsoft.Owin;\nusing Microsoft.Owin.Security;\nusing Microsoft.Owin.Security.OAuth;\nusing System;\nusing System.Co"
},
{
"path": "AuthorizationServer.Api/Startup.cs",
"chars": 1475,
"preview": "using AuthorizationServer.Api.Formats;\nusing AuthorizationServer.Api.Providers;\nusing Microsoft.Owin;\nusing Microsoft.O"
},
{
"path": "AuthorizationServer.Api/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": "AuthorizationServer.Api/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": "AuthorizationServer.Api/Web.config",
"chars": 1083,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n For more information on how to configure your ASP.NET application, please"
},
{
"path": "AuthorizationServer.Api/packages.config",
"chars": 1316,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n <package id=\"Microsoft.AspNet.Cors\" version=\"5.0.0\" targetFramework"
},
{
"path": "JsonWebTokensWebApi.sln",
"chars": 1516,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2013\nVisualStudioVersion = 12.0.30501.0\nMi"
},
{
"path": "README.md",
"chars": 235,
"preview": "JSON Web Tokens (JWT) in ASP.NET Web Api\n===============\n\nTutorial shows how to Issue JSON Web Token in ASP.NET Web API "
},
{
"path": "ResourceServer.Api/Controllers/ProtectedController.cs",
"chars": 614,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net;\nusing System.Net.Http;\nusing Syste"
},
{
"path": "ResourceServer.Api/Properties/AssemblyInfo.cs",
"chars": 1369,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Infor"
},
{
"path": "ResourceServer.Api/ResourceServer.Api.csproj",
"chars": 7878,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "ResourceServer.Api/Startup.cs",
"chars": 1989,
"preview": "using Microsoft.Owin.Security;\nusing Microsoft.Owin.Security.DataHandler.Encoder;\nusing Microsoft.Owin.Security.Jwt;\nus"
},
{
"path": "ResourceServer.Api/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": "ResourceServer.Api/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": "ResourceServer.Api/Web.config",
"chars": 1083,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n For more information on how to configure your ASP.NET application, please"
},
{
"path": "ResourceServer.Api/packages.config",
"chars": 1312,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n <package id=\"Microsoft.AspNet.Cors\" version=\"5.0.0\" targetFramework"
},
{
"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.2.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.2.2/lib/net45/System.Web.Http.xml",
"chars": 532991,
"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.Owin.5.2.2/lib/net45/System.Web.Http.Owin.xml",
"chars": 15471,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<doc>\n <assembly>\n <name>System.Web.Http.Owin</name>\n </assembly>\n <member"
},
{
"path": "packages/Microsoft.AspNet.WebApi.WebHost.5.2.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/Microsoft.Owin.3.0.0/lib/net45/Microsoft.Owin.XML",
"chars": 163683,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Microsoft.Owin</name>\n </assembly>\n <members>\n <me"
},
{
"path": "packages/Microsoft.Owin.Cors.3.0.0/lib/net45/Microsoft.Owin.Cors.XML",
"chars": 4302,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Microsoft.Owin.Cors</name>\n </assembly>\n <members>\n "
},
{
"path": "packages/Microsoft.Owin.Host.SystemWeb.3.0.0/lib/net45/Microsoft.Owin.Host.SystemWeb.xml",
"chars": 30846,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Microsoft.Owin.Host.SystemWeb</name>\n </assembly>\n <membe"
},
{
"path": "packages/Microsoft.Owin.Security.3.0.0/lib/net45/Microsoft.Owin.Security.XML",
"chars": 30297,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Microsoft.Owin.Security</name>\n </assembly>\n <members>\n "
},
{
"path": "packages/Microsoft.Owin.Security.Jwt.3.0.0/lib/net45/Microsoft.Owin.Security.Jwt.xml",
"chars": 15315,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Microsoft.Owin.Security.Jwt</name>\n </assembly>\n <members"
},
{
"path": "packages/Microsoft.Owin.Security.OAuth.3.0.0/lib/net45/Microsoft.Owin.Security.OAuth.XML",
"chars": 109865,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>Microsoft.Owin.Security.OAuth</name>\n </assembly>\n <membe"
},
{
"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/System.IdentityModel.Tokens.Jwt.4.0.0/lib/net45/System.IdentityModel.Tokens.Jwt.Xml",
"chars": 185173,
"preview": "<?xml version=\"1.0\"?>\n<doc>\n <assembly>\n <name>System.IdentityModel.Tokens.Jwt</name>\n </assembly>\n <mem"
},
{
"path": "packages/repositories.config",
"chars": 199,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<repositories>\n <repository path=\"..\\AuthorizationServer.Api\\packages.config\" /"
}
]
// ... and 16 more files (download for full content)
About this extraction
This page contains the full source code of the tjoudeh/JWTAspNetWebApi GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 67 files (4.6 MB), approximately 1.2M tokens, and a symbol index with 23 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.