示例#1
0
		private bool DoGetAccessToken() {
			// Fire the OnBeforeGetAccessToken event
			PreAccessTokenRequestEventArgs preArgs = new PreAccessTokenRequestEventArgs(Service.AccessTokenUrl,
			                                                                            Service.AccessTokenEndPoint.HttpMethod,
			                                                                            RequestToken, RequestTokenVerifier);
			if (BeforeGetAccessToken != null)
				BeforeGetAccessToken(this, preArgs);

			// Create and sign the request
			OAuthParameters authParams = CreateOAuthParameters(null);
			authParams.Verifier = preArgs.Verifier;

			// We don't have a verifier so something has gone wrong in the process.                
			if (string.IsNullOrEmpty(authParams.Verifier))
				return false;

			SignParameters(preArgs.RequestUri, preArgs.HttpMethod, authParams, RequestToken);

			HttpWebRequest request = CreateRequest(preArgs.RequestUri, authParams, preArgs.HttpMethod,
			                                       preArgs.HttpMethod == "POST" ? HttpPostUrlEncodedContentType : String.Empty,
			                                       null);

			OAuthParameters responseParameters;

			// Get the service provider response
			try {
				HttpWebResponse response = (HttpWebResponse)request.GetResponse();

				// Parse the parameters and re-throw any OAuthRequestException from the service provider
				responseParameters = OAuthParameters.Parse(response);
				OAuthRequestException.TryRethrow(responseParameters);
			} catch (WebException e) {
				// Parse the parameters and re-throw any OAuthRequestException from the service provider
				responseParameters = OAuthParameters.Parse(e.Response as HttpWebResponse);
				OAuthRequestException.TryRethrow(responseParameters);

				// If no OAuthRequestException, rethrow the WebException
				throw;
			}

			// Store the access token
			AccessToken = new OAuthToken(TokenType.Access, responseParameters.Token, responseParameters.TokenSecret, Service.Consumer);

			// Fire the OnReceiveAccessToken event
			AccessTokenReceivedEventArgs responseArgs = new AccessTokenReceivedEventArgs(RequestToken, AccessToken);
			responseArgs.AdditionalParameters.Add(responseParameters.AdditionalParameters);

			if (ReceiveAccessToken != null)
				ReceiveAccessToken(this, responseArgs);

			return true;
		}
示例#2
0
        public static string Serialize(OAuthToken token)
        {
            if (token == null)
                throw new ArgumentNullException("token");

            return "[" + Rfc3986.Encode(Enum.Format(typeof(TokenType), token.Type, "G"))
                + "|" + Rfc3986.Encode(token.Token)
                + "|" + Rfc3986.Encode(token.Secret)
                + "|" + Rfc3986.Encode(token.ConsumerKey)
                + "]";
        }
示例#3
0
		private void DoGetRequestToken() {
			// Fire the OnBeforeGetRequestToken event
			PreRequestEventArgs args = new PreRequestEventArgs(Service.RequestTokenUrl, Service.RequestTokenEndPoint.HttpMethod, CallbackUrl);

			if (BeforeGetRequestToken != null)
				BeforeGetRequestToken(this, args);

			OAuthParameters authParams = CreateOAuthParameters(args.AdditionalParameters);
			authParams.Callback = args.CallbackUrl == null ? OAuthOutOfBandCallback : args.CallbackUrl.AbsoluteUri;

			SignParameters(args.RequestUri, args.HttpMethod, authParams, null);

			// Create and sign the request
			HttpWebRequest request = CreateRequest(
				args.RequestUri,
				authParams,
				args.HttpMethod,
				args.HttpMethod == "POST" ? HttpPostUrlEncodedContentType : String.Empty,
				null);

			OAuthParameters responseParameters;

			// Get the service provider response
			try {
				HttpWebResponse response = (HttpWebResponse)request.GetResponse();

				// Parse the parameters and re-throw any OAuthRequestException from the service provider
				responseParameters = OAuthParameters.Parse(response);
				OAuthRequestException.TryRethrow(responseParameters);
			} catch (WebException e) {
				// Parse the parameters and re-throw any OAuthRequestException from the service provider
				responseParameters = OAuthParameters.Parse(e.Response as HttpWebResponse);
				OAuthRequestException.TryRethrow(responseParameters);

				// If no OAuthRequestException, rethrow the WebException
				throw;
			}

			// Store the request token
			RequestToken = new OAuthToken(TokenType.Request, responseParameters.Token, responseParameters.TokenSecret, Service.Consumer);

			// Fire the OnReceiveRequestToken event
			RequestTokenReceivedEventArgs responseArgs = new RequestTokenReceivedEventArgs(RequestToken);
			responseArgs.Parameters.Add(responseParameters.AdditionalParameters);

			if (ReceiveRequestToken != null)
				ReceiveRequestToken(this, responseArgs);
		}
示例#4
0
        private bool DoGetAccessToken()
        {
            // Fire the OnBeforeGetAccessToken event
            PreAccessTokenRequestEventArgs preArgs = new PreAccessTokenRequestEventArgs(Service.AccessTokenUrl,
                                                                                        Service.AccessTokenEndPoint.HttpMethod,
                                                                                        RequestToken, RequestTokenVerifier);

            if (BeforeGetAccessToken != null)
            {
                BeforeGetAccessToken(this, preArgs);
            }

            // Create and sign the request
            OAuthParameters authParams = CreateOAuthParameters(null);

            authParams.Verifier = preArgs.Verifier;

            // We don't have a verifier so something has gone wrong in the process.
            if (string.IsNullOrEmpty(authParams.Verifier))
            {
                return(false);
            }

            SignParameters(preArgs.RequestUri, preArgs.HttpMethod, authParams, RequestToken);

            HttpWebRequest request = CreateRequest(preArgs.RequestUri, authParams, preArgs.HttpMethod,
                                                   preArgs.HttpMethod == "POST" ? HttpPostUrlEncodedContentType : String.Empty,
                                                   null);

            OAuthParameters responseParameters;

            // Get the service provider response
            try {
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                // Parse the parameters and re-throw any OAuthRequestException from the service provider
                responseParameters = OAuthParameters.Parse(response);
                OAuthRequestException.TryRethrow(responseParameters);
            } catch (WebException e) {
                // Parse the parameters and re-throw any OAuthRequestException from the service provider
                responseParameters = OAuthParameters.Parse(e.Response as HttpWebResponse);
                OAuthRequestException.TryRethrow(responseParameters);

                // If no OAuthRequestException, rethrow the WebException
                throw;
            }

            // Store the access token
            AccessToken = new OAuthToken(TokenType.Access, responseParameters.Token, responseParameters.TokenSecret, Service.Consumer);

            // Fire the OnReceiveAccessToken event
            AccessTokenReceivedEventArgs responseArgs = new AccessTokenReceivedEventArgs(RequestToken, AccessToken);

            responseArgs.AdditionalParameters.Add(responseParameters.AdditionalParameters);

            if (ReceiveAccessToken != null)
            {
                ReceiveAccessToken(this, responseArgs);
            }

            return(true);
        }