protected void Page_Load(object sender, EventArgs e) { try { var error = Request["error"]; if (!string.IsNullOrEmpty(error)) { if (error == "access_denied") { error = "Canceled at provider"; } throw new Exception(error); } var code = Request["code"]; if (string.IsNullOrEmpty(code)) { OAuth20TokenHelper.RequestCode <DocuSignLoginProvider>(HttpContext.Current, DocuSignLoginProvider.Instance.Scopes, new Dictionary <string, string> { { "prompt", "login" } }); } else { Master.SubmitCode(code); } } catch (ThreadAbortException) { } catch (Exception ex) { Master.SubmitError(ex.Message); } }
protected void Page_Load(object sender, EventArgs e) { try { var error = Request["error"]; if (!string.IsNullOrEmpty(error)) { if (error == "access_denied") { error = "Canceled at provider"; } throw new Exception(error); } var code = Request["code"]; if (string.IsNullOrEmpty(code)) { OAuth20TokenHelper.RequestCode <DropboxLoginProvider>(HttpContext.Current, additionalArgs: new Dictionary <string, string> { { "force_reauthentication", "true" }, { "token_access_type", "offline" } }); } else { Master.SubmitCode(code); } } catch (ThreadAbortException) { } catch (Exception ex) { Master.SubmitError(ex.Message); } }
protected void Page_Load(object sender, EventArgs e) { try { var error = Request["error"]; if (!string.IsNullOrEmpty(error)) { if (error == "access_denied") { error = "Canceled at provider"; } throw new Exception(error); } var code = Request["code"]; if (string.IsNullOrEmpty(code)) { OAuth20TokenHelper.RequestCode(HttpContext.Current, OneDriveLoginProvider.OneDriveOauthCodeUrl, OneDriveLoginProvider.OneDriveOAuth20ClientId, OneDriveLoginProvider.OneDriveOAuth20RedirectUrl, OneDriveLoginProvider.OneDriveProfileScope); } else { Master.SubmitToken(code, Source); } } catch (ThreadAbortException) { } catch (Exception ex) { Master.SubmitError(ex.Message, Source); } }
public AccountInfo UpdateAccountOAuth(int mailboxId, string code, byte type) { if (string.IsNullOrEmpty(code)) { throw new ArgumentException(@"Empty OAuth code", "code"); } var oAuthToken = OAuth20TokenHelper.GetAccessToken <GoogleLoginProvider>(code); if (oAuthToken == null) { throw new Exception(@"Empty OAuth token"); } if (string.IsNullOrEmpty(oAuthToken.AccessToken)) { throw new Exception(@"Empty OAuth AccessToken"); } if (string.IsNullOrEmpty(oAuthToken.RefreshToken)) { throw new Exception(@"Empty OAuth RefreshToken"); } if (oAuthToken.IsExpired) { throw new Exception(@"OAuth token is expired"); } var loginProfile = GoogleLoginProvider.Instance.GetLoginProfile(oAuthToken.AccessToken); var email = loginProfile.EMail; if (string.IsNullOrEmpty(email)) { throw new Exception(@"Empty email"); } Mailbox mbox; using (var daoFactory = new DaoFactory()) { var daoMailbox = daoFactory.CreateMailboxDao(); mbox = daoMailbox.GetMailBox( new СoncreteUserMailboxExp( mailboxId, Tenant, User)); if (null == mbox) { throw new ArgumentException("Mailbox with specified email doesn't exist."); } if (mbox.IsTeamlabMailbox || string.IsNullOrEmpty(mbox.OAuthToken)) { throw new ArgumentException("Mailbox with specified email can't be updated"); } if (!mbox.Address.Equals(email, StringComparison.InvariantCultureIgnoreCase)) { throw new ArgumentException("Mailbox with specified email can't be updated"); } mbox.OAuthToken = oAuthToken.ToJson(); var result = daoMailbox.SaveMailBox(mbox); mbox.Id = result; } CacheEngine.Clear(User); if (Defines.IsSignalRAvailable) { var engine = new EngineFactory(Tenant, User); engine.AccountEngine.SetAccountsActivity(); } var accountInfo = new AccountInfo(mbox.Id, mbox.Address, mbox.Name, mbox.Enabled, mbox.QuotaError, MailBoxData.AuthProblemType.NoProblems, new MailSignatureData(mbox.Id, Tenant, "", false), new MailAutoreplyData(mbox.Id, Tenant, false, false, false, DateTime.MinValue, DateTime.MinValue, string.Empty, string.Empty), true, mbox.EmailInFolder, false, false); return(accountInfo); }
private static AuthData GetEncodedAccesToken(AuthData authData, ProviderTypes provider) { switch (provider) { case ProviderTypes.GoogleDrive: var code = authData.Token; var token = OAuth20TokenHelper.GetAccessToken(GoogleLoginProvider.GoogleOauthTokenUrl, GoogleLoginProvider.GoogleOAuth20ClientId, GoogleLoginProvider.GoogleOAuth20ClientSecret, GoogleLoginProvider.GoogleOAuth20RedirectUrl, code); if (token == null) { throw new UnauthorizedAccessException(string.Format(FilesCommonResource.ErrorMassage_SecurityException_Auth, provider)); } return(new AuthData(token: token.ToJson())); case ProviderTypes.Box: code = authData.Token; token = OAuth20TokenHelper.GetAccessToken(BoxLoginProvider.BoxOauthTokenUrl, BoxLoginProvider.BoxOAuth20ClientId, BoxLoginProvider.BoxOAuth20ClientSecret, BoxLoginProvider.BoxOAuth20RedirectUrl, code); if (token == null) { throw new UnauthorizedAccessException(string.Format(FilesCommonResource.ErrorMassage_SecurityException_Auth, provider)); } return(new AuthData(token: token.ToJson())); case ProviderTypes.DropboxV2: code = authData.Token; token = OAuth20TokenHelper.GetAccessToken(DropboxLoginProvider.DropboxOauthTokenUrl, DropboxLoginProvider.DropboxOAuth20ClientId, DropboxLoginProvider.DropboxOAuth20ClientSecret, DropboxLoginProvider.DropboxOAuth20RedirectUrl, code); if (token == null) { throw new UnauthorizedAccessException(string.Format(FilesCommonResource.ErrorMassage_SecurityException_Auth, provider)); } return(new AuthData(token: token.ToJson())); case ProviderTypes.DropBox: var dropBoxRequestToken = DropBoxRequestToken.Parse(authData.Token); var config = CloudStorage.GetCloudConfigurationEasy(nSupportedCloudConfigurations.DropBox); var accessToken = DropBoxStorageProviderTools.ExchangeDropBoxRequestTokenIntoAccessToken(config as DropBoxConfiguration, ImportConfiguration.DropboxAppKey, ImportConfiguration.DropboxAppSecret, dropBoxRequestToken); var base64Token = new CloudStorage().SerializeSecurityTokenToBase64Ex(accessToken, config.GetType(), new Dictionary <string, string>()); return(new AuthData(token: base64Token)); case ProviderTypes.SkyDrive: code = authData.Token; token = OAuth20TokenHelper.GetAccessToken(OneDriveLoginProvider.OneDriveOauthTokenUrl, OneDriveLoginProvider.OneDriveOAuth20ClientId, OneDriveLoginProvider.OneDriveOAuth20ClientSecret, OneDriveLoginProvider.OneDriveOAuth20RedirectUrl, code); if (token == null) { throw new UnauthorizedAccessException(string.Format(FilesCommonResource.ErrorMassage_SecurityException_Auth, provider)); } accessToken = AppLimit.CloudComputing.SharpBox.Common.Net.oAuth20.OAuth20Token.FromJson(token.ToJson()); if (accessToken == null) { throw new UnauthorizedAccessException(string.Format(FilesCommonResource.ErrorMassage_SecurityException_Auth, provider)); } config = CloudStorage.GetCloudConfigurationEasy(nSupportedCloudConfigurations.SkyDrive); var storage = new CloudStorage(); base64Token = storage.SerializeSecurityTokenToBase64Ex(accessToken, config.GetType(), new Dictionary <string, string>()); return(new AuthData(token: base64Token)); case ProviderTypes.SharePoint: case ProviderTypes.WebDav: break; default: authData.Url = null; break; } return(authData); }
public MailAccountData UpdateAccountOAuth(string code, byte type, int mailboxId) { if (string.IsNullOrEmpty(code)) { throw new ArgumentException(@"Empty oauth code", "code"); } var oAuthToken = OAuth20TokenHelper.GetAccessToken(GoogleLoginProvider.GoogleOauthTokenUrl, GoogleLoginProvider.GoogleOAuth20ClientId, GoogleLoginProvider.GoogleOAuth20ClientSecret, GoogleLoginProvider.GoogleOAuth20RedirectUrl, code); if (oAuthToken == null) { throw new Exception(@"Empty oauth token"); } var loginProfile = new GoogleLoginProvider().GetLoginProfile(oAuthToken.AccessToken); var email = loginProfile.EMail; if (string.IsNullOrEmpty(email)) { throw new Exception(@"Empty email"); } try { var mbox = MailBoxManager.GetMailBox(mailboxId); if (null == mbox) { throw new ArgumentException("Mailbox with specified email doesn't exist."); } if (mbox.IsTeamlab || !mbox.IsOAuth) { throw new ArgumentException("Mailbox with specified email can't be updated"); } if (!mbox.EMail.Address.Equals(email, StringComparison.InvariantCultureIgnoreCase)) { throw new ArgumentException("Mailbox with specified email can't be updated"); } mbox.OAuthToken = oAuthToken.ToJson(); mbox.AccessTokenRefreshed = true; MailBoxManager.SaveMailBox(mbox, (AuthorizationServiceType)type); MailBoxManager.CachedAccounts.Clear(Username); if (IsSignalRAvailable) { MailBoxManager.UpdateUserActivity(TenantId, Username); } var accountInfo = new AccountInfo(mbox.MailBoxId, mbox.EMailView, mbox.Name, mbox.Enabled, mbox.QuotaError, MailBox.AuthProblemType.NoProblems, new MailSignature(mbox.MailBoxId, TenantId, "", false), new MailAutoreply(mbox.MailBoxId, TenantId, false, false, false, DateTime.MinValue, DateTime.MinValue, String.Empty, String.Empty), false, mbox.EMailInFolder, false, false); return(accountInfo.ToAddressData().FirstOrDefault()); } catch (Exception imapException) { throw new Exception(GetFormattedTextError(imapException, MailServerType.ImapOAuth, imapException is ImapConnectionTimeoutException)); } }
public ThirdPartyController(OAuth20TokenHelper oAuth20TokenHelper) { OAuth20TokenHelper = oAuth20TokenHelper; }
public OAuth20Token GetToken(string codeOAuth) { return(OAuth20TokenHelper.GetAccessToken <T>(codeOAuth)); }