コード例 #1
0
        public ActionResult MakeOAuthRequest(string accessToken, string accessTokenSecret, string endpointUri, string endpointAction)
        {
            OAuthProxyResponseModel retVal = new OAuthProxyResponseModel();

            OAuthKeyConfiguration oauthConfiguration    = OAuthKeyConfiguration.GetInstance();
            EndpointConfiguration endpointConfiguration = EndpointConfiguration.GetInstance();
            EndpointModel         endpointModel         = new EndpointModel();

            endpointModel.ServiceUri       = endpointUri;
            endpointModel.RequestTokenUri  = endpointConfiguration.RequestTokenUri;
            endpointModel.AuthorizationUri = endpointConfiguration.AuthorizationUri;
            endpointModel.AccessTokenUri   = endpointConfiguration.AccessTokenUri;

            if (!endpointUri.EndsWith(@"/") && !endpointAction.StartsWith(@"/"))
            {
                endpointUri += "/";
            }

            DefaultOAuthToken oauthToken = new DefaultOAuthToken();

            oauthToken.Token  = accessToken;
            oauthToken.Secret = accessTokenSecret;

            WebRequest request = HttpWebRequest.Create(endpointUri + endpointAction);

            request.Method      = "GET";
            request.ContentType = "application/json";
            OAuthClient oauthClient = new OAuthClient(oauthConfiguration.ConsumerKey, oauthConfiguration.ConsumerSecret, endpointModel);

            retVal.Response = oauthClient.ExecuteAuthorizedRequest(endpointUri + endpointAction, "application/json", string.Empty, oauthToken);

            return(View("MakeOAuthRequest", retVal));
        }
コード例 #2
0
        public ActionResult MakeOAuthRequest(string accessToken, string accessTokenSecret, string endpointUri, string endpointAction)
        {
            OAuthProxyResponseModel retVal = new OAuthProxyResponseModel();

            OAuthKeyConfiguration oauthConfiguration    = OAuthKeyConfiguration.GetInstance();
            EndpointConfiguration endpointConfiguration = EndpointConfiguration.GetInstance();
            EndpointModel         endpointModel         = new EndpointModel();

            endpointModel.ServiceUri       = endpointUri;
            endpointModel.RequestTokenUri  = endpointConfiguration.RequestTokenUri;
            endpointModel.AuthorizationUri = endpointConfiguration.AuthorizationUri;
            endpointModel.AccessTokenUri   = endpointConfiguration.AccessTokenUri;

            OAuthClient oauthClient = new OAuthClient(endpointModel, null);

            if (oauthClient != null)
            {
                WebConsumer webConsumer            = oauthClient.CreateConsumer(TestSite.MvcApplication.GetTokenManager(oauthConfiguration.ConsumerKey, oauthConfiguration.ConsumerSecret));
                System.Net.HttpWebRequest oAuthReq = webConsumer.PrepareAuthorizedRequest(new DotNetOpenAuth.Messaging.MessageReceivingEndpoint(endpointUri + endpointAction, DotNetOpenAuth.Messaging.HttpDeliveryMethods.GetRequest | DotNetOpenAuth.Messaging.HttpDeliveryMethods.AuthorizationHeaderRequest), accessToken);

                try
                {
                    // No more ProtocolViolationException!
                    using (HttpWebResponse response = (HttpWebResponse)oAuthReq.GetResponse())
                    {
                        // Get the stream containing content returned by the server.
                        using (Stream dataStream = response.GetResponseStream())
                        {
                            // Open the stream using a StreamReader for easy access.
                            StreamReader reader = new StreamReader(dataStream);

                            // Read the content.
                            retVal.Response = reader.ReadToEnd();
                        }
                    }
                }
                catch (WebException we)
                {
                    retVal.Response = we.Message;
                }
            }

            return(View("MakeOAuthRequest", retVal));
        }
コード例 #3
0
        public ActionResult MakeOAuthRequest(string accessToken, string accessTokenSecret, string endpointUri, string endpointAction)
        {
            OAuthProxyResponseModel retVal = new OAuthProxyResponseModel();

            OAuthKeyConfiguration oauthConfiguration = OAuthKeyConfiguration.GetInstance();

            RestClient restClient = new RestClient(endpointUri);

            restClient.Authenticator = OAuth1Authenticator.ForProtectedResource(oauthConfiguration.ConsumerKey, oauthConfiguration.ConsumerSecret, accessToken, accessTokenSecret);

            string[] parameterItems = null;

            if (endpointAction.Contains("?"))
            {
                string[] actionElements = endpointAction.Split('?');

                parameterItems = actionElements[1].Split('&');

                endpointAction = actionElements[0];
            }

            RestRequest request = new RestRequest(endpointAction, Method.GET);

            request.RequestFormat = DataFormat.Json;

            if (parameterItems != null)
            {
                for (int i = 0; i < parameterItems.Length; i++)
                {
                    string[] parameterElements = parameterItems[i].Split('=');

                    request.AddParameter(parameterElements[0], parameterElements[1]);
                }
            }

            IRestResponse response = restClient.Execute(request);

            if (response != null)
            {
                retVal.Response = response.Content;
            }

            return(View("MakeOAuthRequest", retVal));
        }