diff options
Diffstat (limited to 'src')
6 files changed, 29 insertions, 10 deletions
diff --git a/src/DotNetOpenAuth.AspNet.Test/OAuth2ClientTest.cs b/src/DotNetOpenAuth.AspNet.Test/OAuth2ClientTest.cs index d24cf77..e979beb 100644 --- a/src/DotNetOpenAuth.AspNet.Test/OAuth2ClientTest.cs +++ b/src/DotNetOpenAuth.AspNet.Test/OAuth2ClientTest.cs @@ -93,7 +93,7 @@ Assert.AreEqual("12345", result.ProviderUserId); Assert.AreEqual("John Doe", result.UserName); Assert.NotNull(result.ExtraData); - Assert.AreEqual("abcde", result.ExtraData["token"]); + Assert.AreEqual("abcde", result.ExtraData["accesstoken"]); } private class MockOAuth2Client : OAuth2Client { @@ -115,7 +115,6 @@ return new Dictionary<string, string> { {"id", "12345"}, - {"token", accessToken}, {"name", "John Doe"} }; } diff --git a/src/DotNetOpenAuth.AspNet.Test/OAuthClientTest.cs b/src/DotNetOpenAuth.AspNet.Test/OAuthClientTest.cs index bec7f8a..f0eadd1 100644 --- a/src/DotNetOpenAuth.AspNet.Test/OAuthClientTest.cs +++ b/src/DotNetOpenAuth.AspNet.Test/OAuthClientTest.cs @@ -107,6 +107,9 @@ Assert.AreEqual("mockoauth", result.Provider); Assert.AreEqual("12345", result.ProviderUserId); Assert.AreEqual("super", result.UserName); + Assert.IsNotNull(result.ExtraData); + Assert.IsTrue(result.ExtraData.ContainsKey("accesstoken")); + Assert.AreEqual("ok", result.ExtraData["accesstoken"]); } private class MockOAuthClient : OAuthClient { diff --git a/src/DotNetOpenAuth.AspNet/Clients/OAuth/LinkedInClient.cs b/src/DotNetOpenAuth.AspNet/Clients/OAuth/LinkedInClient.cs index 68cf135..865a334 100644 --- a/src/DotNetOpenAuth.AspNet/Clients/OAuth/LinkedInClient.cs +++ b/src/DotNetOpenAuth.AspNet/Clients/OAuth/LinkedInClient.cs @@ -95,6 +95,7 @@ namespace DotNetOpenAuth.AspNet.Clients { string userName = firstName + " " + lastName; var extraData = new Dictionary<string, string>(); + extraData.Add("accesstoken", accessToken); extraData.Add("name", userName); extraData.AddDataIfNotEmpty(document, "headline"); extraData.AddDataIfNotEmpty(document, "summary"); 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 diff --git a/src/DotNetOpenAuth.AspNet/Clients/OAuth/TwitterClient.cs b/src/DotNetOpenAuth.AspNet/Clients/OAuth/TwitterClient.cs index ad1a556..66a6a95 100644 --- a/src/DotNetOpenAuth.AspNet/Clients/OAuth/TwitterClient.cs +++ b/src/DotNetOpenAuth.AspNet/Clients/OAuth/TwitterClient.cs @@ -80,11 +80,12 @@ namespace DotNetOpenAuth.AspNet.Clients { string userName = response.ExtraData["screen_name"]; string profileRequestUrl = "http://api.twitter.com/1/users/show.xml?user_id=" - + MessagingUtilities.EscapeUriDataStringRfc3986(userId); + + MessagingUtilities.EscapeUriDataStringRfc3986(userId); var profileEndpoint = new MessageReceivingEndpoint(profileRequestUrl, HttpDeliveryMethods.GetRequest); HttpWebRequest request = this.WebWorker.PrepareAuthorizedRequest(profileEndpoint, accessToken); var extraData = new Dictionary<string, string>(); + extraData.Add("accesstoken", accessToken); try { using (WebResponse profileResponse = request.GetResponse()) { using (Stream responseStream = profileResponse.GetResponseStream()) { diff --git a/src/DotNetOpenAuth.AspNet/OpenAuthAuthenticationTicketHelper.cs b/src/DotNetOpenAuth.AspNet/OpenAuthAuthenticationTicketHelper.cs index abf9a9d..220d1d0 100644 --- a/src/DotNetOpenAuth.AspNet/OpenAuthAuthenticationTicketHelper.cs +++ b/src/DotNetOpenAuth.AspNet/OpenAuthAuthenticationTicketHelper.cs @@ -19,7 +19,7 @@ namespace DotNetOpenAuth.AspNet { /// <summary> /// The open auth cookie token. /// </summary> - private const string OpenAuthCookieToken = "OpenAuth"; + private const string OpenAuthCookieToken = "OAuth"; #endregion |