summaryrefslogtreecommitdiffstats
path: root/projecttemplates/RelyingPartyLogic/OAuthServiceProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'projecttemplates/RelyingPartyLogic/OAuthServiceProvider.cs')
-rw-r--r--projecttemplates/RelyingPartyLogic/OAuthServiceProvider.cs20
1 files changed, 17 insertions, 3 deletions
diff --git a/projecttemplates/RelyingPartyLogic/OAuthServiceProvider.cs b/projecttemplates/RelyingPartyLogic/OAuthServiceProvider.cs
index 1880d80..807da2d 100644
--- a/projecttemplates/RelyingPartyLogic/OAuthServiceProvider.cs
+++ b/projecttemplates/RelyingPartyLogic/OAuthServiceProvider.cs
@@ -73,6 +73,22 @@ namespace RelyingPartyLogic {
}
public static void AuthorizePendingRequestToken() {
+ var response = AuthorizePendingRequestTokenAndGetResponse();
+ if (response != null) {
+ serviceProvider.Channel.Send(response);
+ }
+ }
+
+ public static OutgoingWebResponse AuthorizePendingRequestTokenAsWebResponse() {
+ var response = AuthorizePendingRequestTokenAndGetResponse();
+ if (response != null) {
+ return serviceProvider.Channel.PrepareResponse(response);
+ } else {
+ return null;
+ }
+ }
+
+ private static UserAuthorizationResponse AuthorizePendingRequestTokenAndGetResponse() {
var pendingRequest = PendingAuthorizationRequest;
if (pendingRequest == null) {
throw new InvalidOperationException("No pending authorization request to authorize.");
@@ -84,9 +100,7 @@ namespace RelyingPartyLogic {
PendingAuthorizationRequest = null;
var response = serviceProvider.PrepareAuthorizationResponse(pendingRequest);
- if (response != null) {
- serviceProvider.Channel.Send(response);
- }
+ return response;
}
/// <summary>