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)); }