Skip to content
This repository was archived by the owner on Mar 20, 2019. It is now read-only.

Commit 24e24a5

Browse files
committed
More fixes
1 parent 9897666 commit 24e24a5

File tree

3 files changed

+32
-29
lines changed

3 files changed

+32
-29
lines changed

samples/OAuthConsumer/OAuthConsumer.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@
5656
<Reference Include="System" />
5757
<Reference Include="System.Data" />
5858
<Reference Include="System.Data.DataSetExtensions" />
59+
<Reference Include="System.Net.Http" />
60+
<Reference Include="System.Net.Http.WebRequest" />
5961
<Reference Include="System.Runtime.Serialization" />
6062
<Reference Include="System.ServiceModel" />
6163
<Reference Include="System.Drawing" />
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="log4net" version="2.0.0" targetFramework="net45" />
4+
<package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net45" />
45
</packages>

samples/OAuthServiceProvider/Code/OAuthAuthorizationManager.cs

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using System.ServiceModel;
88
using System.ServiceModel.Channels;
99
using System.ServiceModel.Security;
10+
using System.Threading.Tasks;
1011
using DotNetOpenAuth;
1112
using DotNetOpenAuth.OAuth;
1213

@@ -25,41 +26,40 @@ protected override bool CheckAccessCore(OperationContext operationContext) {
2526
HttpRequestMessageProperty httpDetails = operationContext.RequestContext.RequestMessage.Properties[HttpRequestMessageProperty.Name] as HttpRequestMessageProperty;
2627
Uri requestUri = operationContext.RequestContext.RequestMessage.Properties.Via;
2728
ServiceProvider sp = Constants.CreateServiceProvider();
28-
try {
29-
var auth = sp.ReadProtectedResourceAuthorization(httpDetails, requestUri);
30-
if (auth != null) {
31-
var accessToken = Global.DataContext.OAuthTokens.Single(token => token.Token == auth.AccessToken);
29+
return Task.Run(
30+
async delegate {
31+
try {
32+
var auth = await sp.ReadProtectedResourceAuthorizationAsync(httpDetails, requestUri);
33+
if (auth != null) {
34+
var accessToken = Global.DataContext.OAuthTokens.Single(token => token.Token == auth.AccessToken);
3235

33-
var principal = sp.CreatePrincipal(auth);
34-
var policy = new OAuthPrincipalAuthorizationPolicy(principal);
35-
var policies = new List<IAuthorizationPolicy> {
36-
policy,
37-
};
36+
var principal = sp.CreatePrincipal(auth);
37+
var policy = new OAuthPrincipalAuthorizationPolicy(principal);
38+
var policies = new List<IAuthorizationPolicy> { policy, };
3839

39-
var securityContext = new ServiceSecurityContext(policies.AsReadOnly());
40-
if (operationContext.IncomingMessageProperties.Security != null) {
41-
operationContext.IncomingMessageProperties.Security.ServiceSecurityContext = securityContext;
42-
} else {
43-
operationContext.IncomingMessageProperties.Security = new SecurityMessageProperty {
44-
ServiceSecurityContext = securityContext,
45-
};
46-
}
40+
var securityContext = new ServiceSecurityContext(policies.AsReadOnly());
41+
if (operationContext.IncomingMessageProperties.Security != null) {
42+
operationContext.IncomingMessageProperties.Security.ServiceSecurityContext = securityContext;
43+
} else {
44+
operationContext.IncomingMessageProperties.Security = new SecurityMessageProperty {
45+
ServiceSecurityContext = securityContext,
46+
};
47+
}
4748

48-
securityContext.AuthorizationContext.Properties["Identities"] = new List<IIdentity> {
49-
principal.Identity,
50-
};
49+
securityContext.AuthorizationContext.Properties["Identities"] = new List<IIdentity> { principal.Identity, };
5150

52-
// Only allow this method call if the access token scope permits it.
53-
string[] scopes = accessToken.Scope.Split('|');
54-
if (scopes.Contains(operationContext.IncomingMessageHeaders.Action)) {
55-
return true;
51+
// Only allow this method call if the access token scope permits it.
52+
string[] scopes = accessToken.Scope.Split('|');
53+
if (scopes.Contains(operationContext.IncomingMessageHeaders.Action)) {
54+
return true;
55+
}
56+
}
57+
} catch (ProtocolException ex) {
58+
Global.Logger.Error("Error processing OAuth messages.", ex);
5659
}
57-
}
58-
} catch (ProtocolException ex) {
59-
Global.Logger.Error("Error processing OAuth messages.", ex);
60-
}
6160

62-
return false;
61+
return false;
62+
}).GetAwaiter().GetResult();
6363
}
6464
}
6565
}

0 commit comments

Comments
 (0)