public void GetRequestToken(string consumerKey, string consumerSecret, string callbackUrl, string serviceUri, string requestTokenUri, string authorizationUri, string accessTokenUri) { RequestTokenModel model = new RequestTokenModel(); model.ConsumerKey = consumerKey; model.ConsumerSecret = consumerSecret; EndpointModel endpointModel = new EndpointModel(); endpointModel.ServiceUri = serviceUri; endpointModel.RequestTokenUri = requestTokenUri; endpointModel.AuthorizationUri = authorizationUri; endpointModel.AccessTokenUri = accessTokenUri; model.EndpointModel = endpointModel; OAuthClientBase oauthClient = OAuthClient.CreateClient(consumerKey, consumerSecret, endpointModel); if (oauthClient != null) { IOAuthToken requestToken = oauthClient.GetRequestToken(this.GenerateRealm(TestUserId, "*****@*****.**"), callbackUrl); model.Token = requestToken.Token; model.Secret = requestToken.Secret; } Session[model.Token] = model; string authorizationUrl = oauthClient.GetUserAuthorizationUrl(model); this.Response.Redirect(authorizationUrl, false); }
public ActionResult OAuthCallback(string oauth_token, string oauth_verifier) { RequestTokenModel model = new RequestTokenModel(); string requestTokenString = Request[Parameters.OAuth_Token]; string verifier = Request[Parameters.OAuth_Verifier]; RequestTokenModel storedRequestTokenModel = (RequestTokenModel)Session[requestTokenString]; model.ConsumerKey = storedRequestTokenModel.ConsumerKey; model.ConsumerSecret = storedRequestTokenModel.ConsumerSecret; model.EndpointModel = storedRequestTokenModel.EndpointModel; OAuthKeyConfiguration oauthConfiguration = OAuthKeyConfiguration.GetInstance(); OAuthClientBase oauthClient = OAuthClient.CreateClient(oauthConfiguration.ConsumerKey, oauthConfiguration.ConsumerSecret, storedRequestTokenModel.EndpointModel); if (string.IsNullOrEmpty(verifier)) { throw new Exception("Expected a non-empty verifier value"); } IOAuthToken accessToken; try { accessToken = oauthClient.ExchangeRequestTokenForAccessToken(storedRequestTokenModel, verifier); model.Token = accessToken.Token; model.Secret = accessToken.Secret; } catch (OAuthException authEx) { Session["problem"] = authEx.Report; Response.Redirect("AccessDenied.aspx"); } return(View(model)); }