summaryrefslogtreecommitdiffstats
path: root/samples/DotNetOpenAuth.ApplicationBlock/Util.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2013-01-23 07:49:02 -0800
committerAndrew Arnott <andrewarnott@gmail.com>2013-01-23 07:49:02 -0800
commitf04d5ca8396bdb0d09b0fea4e22d4e96c4fa8ad2 (patch)
tree93b2b354a85a6705914d8e12ecfce159a24bb563 /samples/DotNetOpenAuth.ApplicationBlock/Util.cs
parent22df10e81fe404fb3f7beb47a2e50a96b79ca78b (diff)
downloadDotNetOpenAuth-f04d5ca8396bdb0d09b0fea4e22d4e96c4fa8ad2.zip
DotNetOpenAuth-f04d5ca8396bdb0d09b0fea4e22d4e96c4fa8ad2.tar.gz
DotNetOpenAuth-f04d5ca8396bdb0d09b0fea4e22d4e96c4fa8ad2.tar.bz2
ApplicationBlock builds.
Diffstat (limited to 'samples/DotNetOpenAuth.ApplicationBlock/Util.cs')
-rw-r--r--samples/DotNetOpenAuth.ApplicationBlock/Util.cs176
1 files changed, 0 insertions, 176 deletions
diff --git a/samples/DotNetOpenAuth.ApplicationBlock/Util.cs b/samples/DotNetOpenAuth.ApplicationBlock/Util.cs
index 0bec372..3e0795a 100644
--- a/samples/DotNetOpenAuth.ApplicationBlock/Util.cs
+++ b/samples/DotNetOpenAuth.ApplicationBlock/Util.cs
@@ -13,33 +13,6 @@
internal static readonly Random NonCryptoRandomDataGenerator = new Random();
/// <summary>
- /// Sets the channel's outgoing HTTP requests to use default network credentials.
- /// </summary>
- /// <param name="channel">The channel to modify.</param>
- public static void UseDefaultNetworkCredentialsOnOutgoingHttpRequests(this Channel channel)
- {
- Debug.Assert(!(channel.WebRequestHandler is WrappingWebRequestHandler), "Wrapping an already wrapped web request handler. This is legal, but highly suspect of a bug as you don't want to wrap the same channel repeatedly to apply the same effect.");
- AddOutgoingHttpRequestTransform(channel, http => http.Credentials = CredentialCache.DefaultNetworkCredentials);
- }
-
- /// <summary>
- /// Adds some action to any outgoing HTTP request on this channel.
- /// </summary>
- /// <param name="channel">The channel's whose outgoing HTTP requests should be modified.</param>
- /// <param name="action">The action to perform on outgoing HTTP requests.</param>
- internal static void AddOutgoingHttpRequestTransform(this Channel channel, Action<HttpWebRequest> action) {
- if (channel == null) {
- throw new ArgumentNullException("channel");
- }
-
- if (action == null) {
- throw new ArgumentNullException("action");
- }
-
- channel.WebRequestHandler = new WrappingWebRequestHandler(channel.WebRequestHandler, action);
- }
-
- /// <summary>
/// Enumerates through the individual set bits in a flag enum.
/// </summary>
/// <param name="flags">The flags enum value.</param>
@@ -106,154 +79,5 @@
return totalCopiedBytes;
}
-
- /// <summary>
- /// Wraps some instance of a web request handler in order to perform some extra operation on all
- /// outgoing HTTP requests.
- /// </summary>
- private class WrappingWebRequestHandler : IDirectWebRequestHandler
- {
- /// <summary>
- /// The handler being wrapped.
- /// </summary>
- private readonly IDirectWebRequestHandler wrappedHandler;
-
- /// <summary>
- /// The action to perform on outgoing HTTP requests.
- /// </summary>
- private readonly Action<HttpWebRequest> action;
-
- /// <summary>
- /// Initializes a new instance of the <see cref="WrappingWebRequestHandler"/> class.
- /// </summary>
- /// <param name="wrappedHandler">The HTTP handler to wrap.</param>
- /// <param name="action">The action to perform on outgoing HTTP requests.</param>
- internal WrappingWebRequestHandler(IDirectWebRequestHandler wrappedHandler, Action<HttpWebRequest> action)
- {
- if (wrappedHandler == null) {
- throw new ArgumentNullException("wrappedHandler");
- }
-
- if (action == null) {
- throw new ArgumentNullException("action");
- }
-
- this.wrappedHandler = wrappedHandler;
- this.action = action;
- }
-
- #region Implementation of IDirectWebRequestHandler
-
- /// <summary>
- /// Determines whether this instance can support the specified options.
- /// </summary>
- /// <param name="options">The set of options that might be given in a subsequent web request.</param>
- /// <returns>
- /// <c>true</c> if this instance can support the specified options; otherwise, <c>false</c>.
- /// </returns>
- public bool CanSupport(DirectWebRequestOptions options)
- {
- return this.wrappedHandler.CanSupport(options);
- }
-
- /// <summary>
- /// Prepares an <see cref="HttpWebRequest"/> that contains an POST entity for sending the entity.
- /// </summary>
- /// <param name="request">The <see cref="HttpWebRequest"/> that should contain the entity.</param>
- /// <returns>
- /// The stream the caller should write out the entity data to.
- /// </returns>
- /// <exception cref="ProtocolException">Thrown for any network error.</exception>
- /// <remarks>
- /// <para>The caller should have set the <see cref="HttpWebRequest.ContentLength"/>
- /// and any other appropriate properties <i>before</i> calling this method.
- /// Callers <i>must</i> close and dispose of the request stream when they are done
- /// writing to it to avoid taking up the connection too long and causing long waits on
- /// subsequent requests.</para>
- /// <para>Implementations should catch <see cref="WebException"/> and wrap it in a
- /// <see cref="ProtocolException"/> to abstract away the transport and provide
- /// a single exception type for hosts to catch.</para>
- /// </remarks>
- public Stream GetRequestStream(HttpWebRequest request)
- {
- this.action(request);
- return this.wrappedHandler.GetRequestStream(request);
- }
-
- /// <summary>
- /// Prepares an <see cref="HttpWebRequest"/> that contains an POST entity for sending the entity.
- /// </summary>
- /// <param name="request">The <see cref="HttpWebRequest"/> that should contain the entity.</param>
- /// <param name="options">The options to apply to this web request.</param>
- /// <returns>
- /// The stream the caller should write out the entity data to.
- /// </returns>
- /// <exception cref="ProtocolException">Thrown for any network error.</exception>
- /// <remarks>
- /// <para>The caller should have set the <see cref="HttpWebRequest.ContentLength"/>
- /// and any other appropriate properties <i>before</i> calling this method.
- /// Callers <i>must</i> close and dispose of the request stream when they are done
- /// writing to it to avoid taking up the connection too long and causing long waits on
- /// subsequent requests.</para>
- /// <para>Implementations should catch <see cref="WebException"/> and wrap it in a
- /// <see cref="ProtocolException"/> to abstract away the transport and provide
- /// a single exception type for hosts to catch.</para>
- /// </remarks>
- public Stream GetRequestStream(HttpWebRequest request, DirectWebRequestOptions options)
- {
- this.action(request);
- return this.wrappedHandler.GetRequestStream(request, options);
- }
-
- /// <summary>
- /// Processes an <see cref="HttpWebRequest"/> and converts the
- /// <see cref="HttpWebResponse"/> to a <see cref="IncomingWebResponse"/> instance.
- /// </summary>
- /// <param name="request">The <see cref="HttpWebRequest"/> to handle.</param>
- /// <returns>An instance of <see cref="IncomingWebResponse"/> describing the response.</returns>
- /// <exception cref="ProtocolException">Thrown for any network error.</exception>
- /// <remarks>
- /// <para>Implementations should catch <see cref="WebException"/> and wrap it in a
- /// <see cref="ProtocolException"/> to abstract away the transport and provide
- /// a single exception type for hosts to catch. The <see cref="WebException.Response"/>
- /// value, if set, should be Closed before throwing.</para>
- /// </remarks>
- public IncomingWebResponse GetResponse(HttpWebRequest request)
- {
- // If the request has an entity, the action would have already been processed in GetRequestStream.
- if (request.Method == "GET")
- {
- this.action(request);
- }
-
- return this.wrappedHandler.GetResponse(request);
- }
-
- /// <summary>
- /// Processes an <see cref="HttpWebRequest"/> and converts the
- /// <see cref="HttpWebResponse"/> to a <see cref="IncomingWebResponse"/> instance.
- /// </summary>
- /// <param name="request">The <see cref="HttpWebRequest"/> to handle.</param>
- /// <param name="options">The options to apply to this web request.</param>
- /// <returns>An instance of <see cref="IncomingWebResponse"/> describing the response.</returns>
- /// <exception cref="ProtocolException">Thrown for any network error.</exception>
- /// <remarks>
- /// <para>Implementations should catch <see cref="WebException"/> and wrap it in a
- /// <see cref="ProtocolException"/> to abstract away the transport and provide
- /// a single exception type for hosts to catch. The <see cref="WebException.Response"/>
- /// value, if set, should be Closed before throwing.</para>
- /// </remarks>
- public IncomingWebResponse GetResponse(HttpWebRequest request, DirectWebRequestOptions options)
- {
- // If the request has an entity, the action would have already been processed in GetRequestStream.
- if (request.Method == "GET") {
- this.action(request);
- }
-
- return this.wrappedHandler.GetResponse(request, options);
- }
-
- #endregion
- }
}
}