summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.OAuth.Common
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.OAuth.Common')
-rw-r--r--src/DotNetOpenAuth.OAuth.Common/DotNetOpenAuth.OAuth.Common.csproj3
-rw-r--r--src/DotNetOpenAuth.OAuth.Common/OAuth/DefaultOAuthHostFactories.cs50
-rw-r--r--src/DotNetOpenAuth.OAuth.Common/packages.config1
3 files changed, 54 insertions, 0 deletions
diff --git a/src/DotNetOpenAuth.OAuth.Common/DotNetOpenAuth.OAuth.Common.csproj b/src/DotNetOpenAuth.OAuth.Common/DotNetOpenAuth.OAuth.Common.csproj
index d5813a1..89638d6 100644
--- a/src/DotNetOpenAuth.OAuth.Common/DotNetOpenAuth.OAuth.Common.csproj
+++ b/src/DotNetOpenAuth.OAuth.Common/DotNetOpenAuth.OAuth.Common.csproj
@@ -23,6 +23,7 @@
<ItemGroup>
<Compile Include="OAuth\ChannelElements\OAuthIdentity.cs" />
<Compile Include="OAuth\ChannelElements\OAuthPrincipal.cs" />
+ <Compile Include="OAuth\DefaultOAuthHostFactories.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
@@ -32,6 +33,8 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Net.Http.WebRequest" />
<Reference Include="Validation, Version=2.0.0.0, Culture=neutral, PublicKeyToken=2fc06f0d701809a7, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Validation.2.0.2.13022\lib\portable-windows8+net40+sl5+windowsphone8\Validation.dll</HintPath>
diff --git a/src/DotNetOpenAuth.OAuth.Common/OAuth/DefaultOAuthHostFactories.cs b/src/DotNetOpenAuth.OAuth.Common/OAuth/DefaultOAuthHostFactories.cs
new file mode 100644
index 0000000..33d06b2
--- /dev/null
+++ b/src/DotNetOpenAuth.OAuth.Common/OAuth/DefaultOAuthHostFactories.cs
@@ -0,0 +1,50 @@
+//-----------------------------------------------------------------------
+// <copyright file="DefaultOAuthHostFactories.cs" company="Andrew Arnott">
+// Copyright (c) Andrew Arnott. All rights reserved.
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace DotNetOpenAuth.OAuth {
+ using System;
+ using System.Collections.Generic;
+ using System.Linq;
+ using System.Net.Cache;
+ using System.Net.Http;
+ using System.Text;
+ using System.Threading.Tasks;
+
+ /// <summary>
+ /// Creates default instances of required dependencies.
+ /// </summary>
+ public class DefaultOAuthHostFactories : IHostFactories {
+ /// <summary>
+ /// Initializes a new instance of a concrete derivation of <see cref="HttpMessageHandler" />
+ /// to be used for outbound HTTP traffic.
+ /// </summary>
+ /// <returns>An instance of <see cref="HttpMessageHandler"/>.</returns>
+ /// <remarks>
+ /// An instance of <see cref="WebRequestHandler" /> is recommended where available;
+ /// otherwise an instance of <see cref="HttpClientHandler" /> is recommended.
+ /// </remarks>
+ public virtual HttpMessageHandler CreateHttpMessageHandler() {
+ var handler = new HttpClientHandler();
+ return handler;
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="HttpClient" /> class
+ /// to be used for outbound HTTP traffic.
+ /// </summary>
+ /// <param name="handler">The handler to pass to the <see cref="HttpClient" /> constructor.
+ /// May be null to use the default that would be provided by <see cref="CreateHttpMessageHandler" />.</param>
+ /// <returns>
+ /// An instance of <see cref="HttpClient" />.
+ /// </returns>
+ public HttpClient CreateHttpClient(HttpMessageHandler handler) {
+ handler = handler ?? this.CreateHttpMessageHandler();
+ var client = new HttpClient(handler);
+ client.DefaultRequestHeaders.UserAgent.Add(Util.LibraryVersionHeader);
+ return client;
+ }
+ }
+}
diff --git a/src/DotNetOpenAuth.OAuth.Common/packages.config b/src/DotNetOpenAuth.OAuth.Common/packages.config
index e3309bc..d32d62f 100644
--- a/src/DotNetOpenAuth.OAuth.Common/packages.config
+++ b/src/DotNetOpenAuth.OAuth.Common/packages.config
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
+ <package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net45" />
<package id="Validation" version="2.0.2.13022" targetFramework="net45" />
</packages> \ No newline at end of file