diff options
Diffstat (limited to 'src/DotNetOAuth/ChannelElements')
-rw-r--r-- | src/DotNetOAuth/ChannelElements/IOAuthDirectedMessage.cs (renamed from src/DotNetOAuth/ChannelElements/IOAuthProtocolDirectedMessage.cs) | 6 | ||||
-rw-r--r-- | src/DotNetOAuth/ChannelElements/OAuthChannel.cs | 38 |
2 files changed, 22 insertions, 22 deletions
diff --git a/src/DotNetOAuth/ChannelElements/IOAuthProtocolDirectedMessage.cs b/src/DotNetOAuth/ChannelElements/IOAuthDirectedMessage.cs index 6399c9c..9483005 100644 --- a/src/DotNetOAuth/ChannelElements/IOAuthProtocolDirectedMessage.cs +++ b/src/DotNetOAuth/ChannelElements/IOAuthDirectedMessage.cs @@ -1,5 +1,5 @@ //-----------------------------------------------------------------------
-// <copyright file="IOAuthProtocolDirectedMessage.cs" company="Andrew Arnott">
+// <copyright file="IOAuthDirectedMessage.cs" company="Andrew Arnott">
// Copyright (c) Andrew Arnott. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------
@@ -10,10 +10,10 @@ namespace DotNetOAuth.ChannelElements { /// <summary>
/// Additional properties that apply specifically to OAuth messages.
/// </summary>
- internal interface IOAuthProtocolDirectedMessage {
+ internal interface IOAuthDirectedMessage : IDirectedProtocolMessage {
/// <summary>
/// Gets the preferred method of transport for the message.
/// </summary>
- MessageScheme PreferredScheme { get; }
+ HttpDeliveryMethod HttpMethods { get; }
}
}
diff --git a/src/DotNetOAuth/ChannelElements/OAuthChannel.cs b/src/DotNetOAuth/ChannelElements/OAuthChannel.cs index 7183fa5..acbb69b 100644 --- a/src/DotNetOAuth/ChannelElements/OAuthChannel.cs +++ b/src/DotNetOAuth/ChannelElements/OAuthChannel.cs @@ -7,6 +7,7 @@ namespace DotNetOAuth.ChannelElements {
using System;
using System.Collections.Generic;
+ using System.Globalization;
using System.IO;
using System.Net;
using System.Text;
@@ -57,15 +58,9 @@ namespace DotNetOAuth.ChannelElements { }
this.webRequestHandler = webRequestHandler;
- this.PreferredTransmissionScheme = MessageScheme.AuthorizationHeaderRequest;
}
/// <summary>
- /// Gets or sets the method used in direct requests to transmit the message payload.
- /// </summary>
- internal MessageScheme PreferredTransmissionScheme { get; set; }
-
- /// <summary>
/// Gets or sets the Consumer web application path.
/// </summary>
internal Uri Realm { get; set; }
@@ -171,22 +166,27 @@ namespace DotNetOAuth.ChannelElements { if (request.Recipient == null) {
throw new ArgumentException(MessagingStrings.DirectedMessageMissingRecipient, "request");
}
+ IOAuthDirectedMessage oauthRequest = request as IOAuthDirectedMessage;
+ if (oauthRequest == null) {
+ throw new ArgumentException(
+ string.Format(
+ CultureInfo.CurrentCulture,
+ MessagingStrings.UnexpectedType,
+ typeof(IOAuthDirectedMessage),
+ request.GetType()));
+ }
HttpWebRequest httpRequest;
- MessageScheme transmissionMethod = this.PreferredTransmissionScheme;
- switch (transmissionMethod) {
- case MessageScheme.AuthorizationHeaderRequest:
- httpRequest = this.InitializeRequestAsAuthHeader(request);
- break;
- case MessageScheme.PostRequest:
- httpRequest = this.InitializeRequestAsPost(request);
- break;
- case MessageScheme.GetRequest:
- httpRequest = InitializeRequestAsGet(request);
- break;
- default:
- throw new NotSupportedException();
+ HttpDeliveryMethod transmissionMethod = oauthRequest.HttpMethods;
+ if ((transmissionMethod & HttpDeliveryMethod.AuthorizationHeaderRequest) != 0) {
+ httpRequest = this.InitializeRequestAsAuthHeader(request);
+ } else if ((transmissionMethod & HttpDeliveryMethod.PostRequest) != 0) {
+ httpRequest = this.InitializeRequestAsPost(request);
+ } else if ((transmissionMethod & HttpDeliveryMethod.GetRequest) != 0) {
+ httpRequest = InitializeRequestAsGet(request);
+ } else {
+ throw new NotSupportedException();
}
Response response = this.webRequestHandler.GetResponse(httpRequest);
|