diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2012-03-02 17:21:31 -0800 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2012-03-02 17:21:31 -0800 |
commit | 68dc64e8a1a1b2fb85e3a3b3214d04a78be51ee9 (patch) | |
tree | d420582d48eb767f3bf40ab693d84eb7e9ca996b /src/DotNetOpenAuth.AspNet/Clients/OAuth/OAuthClient.cs | |
parent | a292822196d0911a68fc56597ed52a8c84a41cbe (diff) | |
parent | 062b432486426d4aeaff415702577607d7ec8fce (diff) | |
download | DotNetOpenAuth-68dc64e8a1a1b2fb85e3a3b3214d04a78be51ee9.zip DotNetOpenAuth-68dc64e8a1a1b2fb85e3a3b3214d04a78be51ee9.tar.gz DotNetOpenAuth-68dc64e8a1a1b2fb85e3a3b3214d04a78be51ee9.tar.bz2 |
Merge pull request #80 from dotnetjunky/master
Fix unit tests failing.
Diffstat (limited to 'src/DotNetOpenAuth.AspNet/Clients/OAuth/OAuthClient.cs')
-rw-r--r-- | src/DotNetOpenAuth.AspNet/Clients/OAuth/OAuthClient.cs | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/DotNetOpenAuth.AspNet/Clients/OAuth/OAuthClient.cs b/src/DotNetOpenAuth.AspNet/Clients/OAuth/OAuthClient.cs index 42b960c..bae3f82 100644 --- a/src/DotNetOpenAuth.AspNet/Clients/OAuth/OAuthClient.cs +++ b/src/DotNetOpenAuth.AspNet/Clients/OAuth/OAuthClient.cs @@ -11,6 +11,7 @@ namespace DotNetOpenAuth.AspNet.Clients { using DotNetOpenAuth.OAuth; using DotNetOpenAuth.OAuth.ChannelElements; using DotNetOpenAuth.OAuth.Messages; + using System.Collections.Generic; /// <summary> /// Represents base class for OAuth 1.0 clients @@ -128,13 +129,27 @@ namespace DotNetOpenAuth.AspNet.Clients { return AuthenticationResult.Failed; } - // add the access token to the user data dictionary just in case page developers want to use it AuthenticationResult result = this.VerifyAuthenticationCore(response); - if (result.IsSuccessful && result.ExtraData != null) { - result.ExtraData["accesstoken"] = response.AccessToken; - } - - return result; + if (result.IsSuccessful && result.ExtraData != null) + { + // add the access token to the user data dictionary just in case page developers want to use it + var wrapExtraData = result.ExtraData.IsReadOnly + ? new Dictionary<string, string>(result.ExtraData) + : result.ExtraData; + wrapExtraData["accesstoken"] = response.AccessToken; + + AuthenticationResult wrapResult = new AuthenticationResult( + result.IsSuccessful, + result.Provider, + result.ProviderUserId, + result.UserName, + wrapExtraData + ); + + result = wrapResult; + } + + return result; } #endregion |