public void AuthorizeRequestToken(string requestToken) { OAuthDataSet.OAuthTokenRow row = GetOAuthTokenRow(requestToken); if (row != null) { row.TokenTypeId = (int)OAuthTokenType.AuthorizedRequestToken; row.SetPendingUserAuthorizationRequestNull(); UserContext user = UserContext.Current; if (user != null) { row.LoginId = user.UserId; if (user.OrganizationId != Guid.Empty) { row.OrganizationId = user.OrganizationId; if (user.InstanceId != Guid.Empty) { row.InstanceId = user.InstanceId; } } } using (OAuthTokenTableAdapter adapter = new OAuthTokenTableAdapter()) { adapter.Update(row); } } }
public TokenType GetTokenType(string token) { OAuthDataSet.OAuthTokenRow row = GetOAuthTokenRow(token); if (row != null) { return((row.TokenTypeId == (int)OAuthTokenType.AccessToken) ? TokenType.AccessToken : TokenType.RequestToken); } return(TokenType.InvalidToken); }
public bool IsRequestTokenAuthorized(string requestToken) { OAuthDataSet.OAuthTokenRow row = GetOAuthTokenRow(requestToken); if (row != null) { if (row.TokenTypeId == (int)OAuthTokenType.AuthorizedRequestToken) { return(true); } } return(false); }
public IServiceProviderRequestToken GetRequestToken(string token) { OAuthDataSet.OAuthTokenRow row = GetOAuthTokenRow(token); if (row != null) { if (row.TokenTypeId != (int)OAuthTokenType.AccessToken) { return(row); } } return(null); }
protected void Page_Load(object sender, EventArgs e) { this.MasterPage.VisibleHeader = this.MasterPage.VisibleMainMenu = this.MasterPage.VisibleLeftArea = this.MasterPage.VisibleSubmenu = this.MasterPage.VisibleBreadcrumbs = this.MasterPage.VisibleFooter = this.MasterPage.VisibleHeaderMessage = this.MasterPage.EnableOverlay = false; if (this.EnableEmbeddedStyleSheets) { if (FrameworkConfiguration.Current.WebApplication.MasterPage.Theme == Pages.MasterPageTheme.Modern) { this.Page.Header.Controls.Add(Support.CreateStyleSheetLink(ResourceProvider.GetResourceUrl(ResourceProvider.LogOnModernStyleSheet, true))); } else { this.Page.Header.Controls.Add(Support.CreateStyleSheetLink(ResourceProvider.GetResourceUrl(ResourceProvider.LogOnStyleSheet, true))); } } m_PendingRequest = TokenProvider.Current.GetPendingUserAuthorizationRequest(); if (!IsPostBack) { this.LoadResources(); MainMultiView.ActiveViewIndex = 2; if (m_PendingRequest == null) { //Response.Redirect("~/Members/AuthorizedConsumers.aspx"); // TODO: Need to redirect to user's start page? } else { MainMultiView.ActiveViewIndex = 0; string token = ((ITokenContainingMessage)m_PendingRequest).Token; IServiceProviderRequestToken requestToken = TokenProvider.Current.GetRequestToken(token); OAuthDataSet.OAuthTokenRow requestTokenRow = (OAuthDataSet.OAuthTokenRow)requestToken; ConsumerLiteral.Text = string.Format(CultureInfo.InvariantCulture, Resources.OAuthControl_ConsumerLiteral_Text, TokenProvider.Current.GetConsumer(requestTokenRow.ConsumerId).Key, FrameworkConfiguration.Current.WebApplication.Name); // Generate an unpredictable secret that goes to the user agent and must come back with authorization // to guarantee the user interacted with this page rather than being scripted by an evil Consumer. OAuthAuthorizationSecToken.Value = UserContext.OAuthAuthorizationSecret = TokenProvider.Current.GenerateTokenSecret(); } } }
public void UpdatePendingUserAuthorizationRequest(string token, UserAuthorizationRequest pendingUserAuthorizationRequest) { OAuthDataSet.OAuthTokenRow row = GetOAuthTokenRow(token); if (row != null) { row.PendingUserAuthorizationRequest = Support.Serialize(pendingUserAuthorizationRequest); using (OAuthTokenTableAdapter adapter = new OAuthTokenTableAdapter()) { adapter.Update(row); } } }
public void ProcessRequest(HttpContext context) { IProtocolMessage request = m_Provider.ReadRequest(); UnauthorizedTokenRequest requestToken = null; UserAuthorizationRequest requestAuth = null; AuthorizedTokenRequest requestAccessToken; if ((requestToken = request as UnauthorizedTokenRequest) != null) { UnauthorizedTokenResponse response = m_Provider.PrepareUnauthorizedTokenMessage(requestToken); m_Provider.Channel.Send(response); } else if ((requestAuth = request as UserAuthorizationRequest) != null) { string token = ((ITokenContainingMessage)requestAuth).Token; ((TokenProvider)m_Provider.TokenManager).UpdatePendingUserAuthorizationRequest(token, requestAuth); TokenProvider.SetTokenCookie(token); if (context == null) { throw new ArgumentNullException("context"); } context.Response.Redirect(ActionProvider.FindAction(ActionProvider.OAuthPageActionId).AbsoluteNavigateUrl); } else if ((requestAccessToken = request as AuthorizedTokenRequest) != null) { AuthorizedTokenResponse response = m_Provider.PrepareAccessTokenMessage(requestAccessToken); OAuthDataSet.OAuthTokenRow row = (OAuthDataSet.OAuthTokenRow)m_Provider.TokenManager.GetAccessToken(response.AccessToken); response.ExtraData.Add(new KeyValuePair <string, string>("api_token", LoginProvider.Current.GetToken(row.LoginId))); if (!row.IsOrganizationIdNull()) { response.ExtraData.Add(new KeyValuePair <string, string>("org", OrganizationProvider.GetOrganization(row.OrganizationId).PseudoId)); if (!row.IsInstanceIdNull()) { response.ExtraData.Add(new KeyValuePair <string, string>("dept", InstanceProvider.GetInstance(row.InstanceId, row.OrganizationId).PseudoId)); } } m_Provider.Channel.Send(response); } else { throw new InvalidOperationException(); } }
public void UpdateToken(IServiceProviderRequestToken token) { if (token != null) { OAuthDataSet.OAuthTokenRow row = GetOAuthTokenRow(token.Token); if (row != null) { row.RequestTokenVerifier = token.VerificationCode; using (OAuthTokenTableAdapter adapter = new OAuthTokenTableAdapter()) { adapter.Update(row); } } } }
public void ExpireRequestTokenAndStoreNewAccessToken(string consumerKey, string requestToken, string accessToken, string accessTokenSecret) { OAuthDataSet.OAuthTokenRow row = GetOAuthTokenRow(requestToken); if (row != null) { if (string.Compare(consumerKey, GetConsumer(row.ConsumerId).Key, StringComparison.OrdinalIgnoreCase) == 0) { row.CreatedTime = DateTime.UtcNow; row.TokenTypeId = (int)OAuthTokenType.AccessToken; row.Token = accessToken; row.TokenSecret = accessTokenSecret; using (OAuthTokenTableAdapter adapter = new OAuthTokenTableAdapter()) { adapter.Update(row); } } } }
public UserAuthorizationRequest GetPendingUserAuthorizationRequest() { string token = GetTokenFromCookie(); if (!string.IsNullOrEmpty(token)) { OAuthDataSet.OAuthTokenRow row = GetOAuthTokenRow(token); if (row != null) { if (row.TokenTypeId == (int)OAuthTokenType.UnauthorizedRequestToken) { if (!row.IsPendingUserAuthorizationRequestNull()) { return(Support.Deserialize(row.PendingUserAuthorizationRequest) as UserAuthorizationRequest); } } } } return(null); }
public string UpdateRequestTokenVerifier(string token) { string verifier = null; OAuthDataSet.OAuthTokenRow row = GetOAuthTokenRow(token); if (row != null) { OAuthDataSet.OAuthConsumerRow consumerRow = (OAuthDataSet.OAuthConsumerRow)TokenProvider.Current.GetConsumer(row.ConsumerId); if (consumerRow != null) { verifier = ServiceProvider.CreateVerificationCode((DotNetOpenAuth.OAuth.VerificationCodeFormat)consumerRow.VerificationCodeFormat, consumerRow.VerificationCodeLength); row.RequestTokenVerifier = verifier; using (OAuthTokenTableAdapter adapter = new OAuthTokenTableAdapter()) { adapter.Update(row); } } } return(verifier); }
public string GetTokenSecret(string token) { OAuthDataSet.OAuthTokenRow row = GetOAuthTokenRow(token); return((row != null) ? row.TokenSecret : null); }