diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2009-08-21 09:40:59 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2009-08-21 09:40:59 -0700 |
commit | 85504a02bf8ca2252fbb8946aa074487e28e5342 (patch) | |
tree | 4024dcc291c7470882756c9dbbd2632c735e6fe8 /samples/OAuthServiceProvider/App_Code/DataApi.cs | |
parent | a2bc2163b1741845df8eaf1e6216e74a8a70a278 (diff) | |
download | DotNetOpenAuth-85504a02bf8ca2252fbb8946aa074487e28e5342.zip DotNetOpenAuth-85504a02bf8ca2252fbb8946aa074487e28e5342.tar.gz DotNetOpenAuth-85504a02bf8ca2252fbb8946aa074487e28e5342.tar.bz2 |
Fixed bug in OAuth Service Provider WCF sample where the service was using the identity of the logged in user rather than the identity authenticated by the service (OAuth) to look up the data.
Resolves trac #114. Thanks Steven L-P for reporting this!
Diffstat (limited to 'samples/OAuthServiceProvider/App_Code/DataApi.cs')
-rw-r--r-- | samples/OAuthServiceProvider/App_Code/DataApi.cs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/samples/OAuthServiceProvider/App_Code/DataApi.cs b/samples/OAuthServiceProvider/App_Code/DataApi.cs index 00876f6..d5adb10 100644 --- a/samples/OAuthServiceProvider/App_Code/DataApi.cs +++ b/samples/OAuthServiceProvider/App_Code/DataApi.cs @@ -7,20 +7,25 @@ using System.ServiceModel; /// <remarks> /// Note how there is no code here that is bound to OAuth or any other /// credential/authorization scheme. That's all part of the channel/binding elsewhere. -/// And the reference to Global.LoggedInUser is the user being impersonated by the WCF client. +/// And the reference to OperationContext.Current.ServiceSecurityContext.PrimaryIdentity +/// is the user being impersonated by the WCF client. /// In the OAuth case, it is the user who authorized the OAuth access token that was used /// to gain access to the service. /// </remarks> public class DataApi : IDataApi { + private User User { + get { return OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.GetUser(); } + } + public int? GetAge() { - return Global.LoggedInUser.Age; + return User.Age; } public string GetName() { - return Global.LoggedInUser.FullName; + return User.FullName; } public string[] GetFavoriteSites() { - return Global.LoggedInUser.FavoriteSites.Select(site => site.SiteUrl).ToArray(); + return User.FavoriteSites.Select(site => site.SiteUrl).ToArray(); } } |