示例#1
0
 public ThirdpartyConfiguration(
     IConfiguration configuration,
     ConsumerFactory consumerFactory)
 {
     Configuration         = configuration;
     BoxLoginProvider      = new Lazy <BoxLoginProvider>(() => consumerFactory.Get <BoxLoginProvider>());
     DropboxLoginProvider  = new Lazy <DropboxLoginProvider>(() => consumerFactory.Get <DropboxLoginProvider>());
     OneDriveLoginProvider = new Lazy <OneDriveLoginProvider>(() => consumerFactory.Get <OneDriveLoginProvider>());
     DocuSignLoginProvider = new Lazy <DocuSignLoginProvider>(() => consumerFactory.Get <DocuSignLoginProvider>());
     GoogleLoginProvider   = new Lazy <GoogleLoginProvider>(() => consumerFactory.Get <GoogleLoginProvider>());
 }
 public ThirdpartyConfiguration(
     IConfiguration configuration,
     IDaoFactory daoFactory,
     ConsumerFactory consumerFactory)
 {
     Configuration         = configuration;
     DaoFactory            = daoFactory;
     BoxLoginProvider      = consumerFactory.Get <BoxLoginProvider>();
     DropboxLoginProvider  = consumerFactory.Get <DropboxLoginProvider>();
     OneDriveLoginProvider = consumerFactory.Get <OneDriveLoginProvider>();
     DocuSignLoginProvider = consumerFactory.Get <DocuSignLoginProvider>();
     GoogleLoginProvider   = consumerFactory.Get <GoogleLoginProvider>();
 }
示例#3
0
        public object GetEasyBibCitation(string data)
        {
            try
            {
                var easyBibappkey = ConsumerFactory.Get <EasyBibHelper>().AppKey;

                var jsonBlogInfo = JObject.Parse(data);
                jsonBlogInfo.Add("key", easyBibappkey);
                var citationData = jsonBlogInfo.ToString();

                var          uri         = "https://api.citation-api.com/2.0/rest/cite";
                const string contentType = "application/json";
                const string method      = "POST";
                var          body        = citationData;
                var          headers     = new Dictionary <string, string>()
                {
                };

                return(RequestHelper.PerformRequest(uri, contentType, method, body, headers));
            }
            catch (Exception)
            {
                return(null);

                throw;
            }
        }
示例#4
0
        public BaseOAuth2Authorization(ILog log)
        {
            if (null == log)
            {
                throw new ArgumentNullException("log");
            }

            this.log      = log;
            loginProvider = ConsumerFactory.Get <T>();

            try
            {
                if (String.IsNullOrEmpty(loginProvider.ClientID))
                {
                    throw new ArgumentNullException("ClientId");
                }

                if (String.IsNullOrEmpty(loginProvider.ClientSecret))
                {
                    throw new ArgumentNullException("ClientSecret");
                }

                if (String.IsNullOrEmpty(loginProvider.RedirectUri))
                {
                    throw new ArgumentNullException("RedirectUrl");
                }
            }
            catch (Exception ex)
            {
                log.ErrorFormat("GoogleOAuth2Authorization() Exception:\r\n{0}\r\n", ex.ToString());
            }
        }
示例#5
0
        internal string GetRefreshedToken(OAuth20Token token)
        {
            if (token.IsExpired)
            {
                try
                {
                    Log.Info("DocuSign refresh token for user " + AuthContext.CurrentAccount.ID);

                    var refreshed = ConsumerFactory.Get <DocuSignLoginProvider>().RefreshToken(token.RefreshToken);

                    if (refreshed != null)
                    {
                        token.AccessToken  = refreshed.AccessToken;
                        token.RefreshToken = refreshed.RefreshToken;
                        token.ExpiresIn    = refreshed.ExpiresIn;
                        token.Timestamp    = DateTime.UtcNow;

                        SaveToken(token);
                    }
                }
                catch (Exception ex)
                {
                    Log.Error("DocuSign refresh token for user " + AuthContext.CurrentAccount.ID, ex);
                }
            }
            return(token.AccessToken);
        }
示例#6
0
        public static OAuth20Token GetAccessToken <T>(ConsumerFactory consumerFactory, string authCode) where T : Consumer, IOAuthProvider, new()
        {
            var loginProvider = consumerFactory.Get <T>();
            var requestUrl    = loginProvider.AccessTokenUrl;
            var clientID      = loginProvider.ClientID;
            var clientSecret  = loginProvider.ClientSecret;
            var redirectUri   = loginProvider.RedirectUri;

            if (string.IsNullOrEmpty(authCode))
            {
                throw new ArgumentNullException("authCode");
            }
            if (string.IsNullOrEmpty(clientID))
            {
                throw new ArgumentNullException("clientID");
            }
            if (string.IsNullOrEmpty(clientSecret))
            {
                throw new ArgumentNullException("clientSecret");
            }

            var data = string.Format("code={0}&client_id={1}&client_secret={2}",
                                     HttpUtility.UrlEncode(authCode),
                                     HttpUtility.UrlEncode(clientID),
                                     HttpUtility.UrlEncode(clientSecret));

            if (!string.IsNullOrEmpty(redirectUri))
            {
                data += "&redirect_uri=" + HttpUtility.UrlEncode(redirectUri);
            }

            data += "&grant_type=authorization_code";

            var json = RequestHelper.PerformRequest(requestUrl, "application/x-www-form-urlencoded", "POST", data);

            if (json != null)
            {
                if (!json.StartsWith("{"))
                {
                    json = "{\"" + json.Replace("=", "\":\"").Replace("&", "\",\"") + "\"}";
                }

                var token = OAuth20Token.FromJson(json);
                if (token == null)
                {
                    return(null);
                }

                token.ClientID     = clientID;
                token.ClientSecret = clientSecret;
                token.RedirectUri  = redirectUri;
                return(token);
            }

            return(null);
        }
示例#7
0
        static SmsProviderManager()
        {
            SmscProvider = ConsumerFactory.Get <SmscProvider>();

            ClickatellProvider    = ConsumerFactory.Get <ClickatellProvider>();
            ClickatellUSAProvider = ConsumerFactory.Get <ClickatellUSAProvider>();

            TwilioProvider     = ConsumerFactory.Get <TwilioProvider>();
            TwilioSaaSProvider = ConsumerFactory.Get <TwilioSaaSProvider>();
        }
示例#8
0
        public static void RequestCode <T>(HttpContext context, ConsumerFactory consumerFactory, string scope = null, Dictionary <string, string> additionalArgs = null) where T : Consumer, IOAuthProvider, new()
        {
            var loginProvider = consumerFactory.Get <T>();
            var requestUrl    = loginProvider.CodeUrl;
            var clientID      = loginProvider.ClientID;
            var redirectUri   = loginProvider.RedirectUri;

            var uriBuilder = new UriBuilder(requestUrl);

            var query = uriBuilder.Query;

            if (!string.IsNullOrEmpty(query))
            {
                query += "&";
            }
            query += "response_type=code";

            if (!string.IsNullOrEmpty(clientID))
            {
                query += "&client_id=" + HttpUtility.UrlEncode(clientID);
            }
            if (!string.IsNullOrEmpty(redirectUri))
            {
                query += "&redirect_uri=" + HttpUtility.UrlEncode(redirectUri);
            }
            if (!string.IsNullOrEmpty(scope))
            {
                query += "&scope=" + HttpUtility.UrlEncode(scope);
            }

            query += "&state=" + HttpUtility.UrlEncode(context.Request.GetUrlRewriter().AbsoluteUri);

            if (additionalArgs != null)
            {
                query = additionalArgs.Keys.Where(additionalArg => additionalArg != null)
                        .Aggregate(query, (current, additionalArg) =>
                                   additionalArg != null ? current
                                   + ("&" + HttpUtility.UrlEncode((additionalArg).Trim())
                                      + "=" + HttpUtility.UrlEncode((additionalArgs[additionalArg] ?? "").Trim())) : null);
            }

            context.Response.Redirect(uriBuilder.Uri + "?" + query, true);
        }
示例#9
0
        public static OAuth20Token RefreshToken <T>(ConsumerFactory consumerFactory, OAuth20Token token) where T : Consumer, IOAuthProvider, new()
        {
            var loginProvider = consumerFactory.Get <T>();

            return(RefreshToken(loginProvider.AccessTokenUrl, token));
        }
示例#10
0
 public override void OnActionExecuting(ActionExecutingContext filterContext)
 {
     if (!new RequestValidationHelper().IsValidRequest(filterContext.HttpContext, ConsumerFactory.Get <Web.Core.Sms.TwilioProvider>()["twilioAuthToken"], HttpContext.Current.Request.GetUrlRewriter().AbsoluteUri))
     {
         filterContext.Result = new Twilio.AspNet.Mvc.HttpStatusCodeResult(HttpStatusCode.Forbidden);
     }
     base.OnActionExecuting(filterContext);
 }
示例#11
0
 /// <summary>
 /// </summary>
 /// <param name="context"></param>
 /// <param name="fileStorageService"></param>
 public FilesControllerHelper(
     ApiContext context,
     FileStorageService <T> fileStorageService,
     FileWrapperHelper fileWrapperHelper,
     FilesSettingsHelper filesSettingsHelper,
     FilesLinkUtility filesLinkUtility,
     FileUploader fileUploader,
     DocumentServiceHelper documentServiceHelper,
     TenantManager tenantManager,
     SecurityContext securityContext,
     FolderWrapperHelper folderWrapperHelper,
     FileOperationWraperHelper fileOperationWraperHelper,
     FileShareWrapperHelper fileShareWrapperHelper,
     FileShareParamsHelper fileShareParamsHelper,
     EntryManager entryManager,
     UserManager userManager,
     WebItemSecurity webItemSecurity,
     CoreBaseSettings coreBaseSettings,
     ThirdpartyConfiguration thirdpartyConfiguration,
     MessageService messageService,
     CommonLinkUtility commonLinkUtility,
     DocumentServiceConnector documentServiceConnector,
     FolderContentWrapperHelper folderContentWrapperHelper,
     WordpressToken wordpressToken,
     WordpressHelper wordpressHelper,
     ConsumerFactory consumerFactory,
     EasyBibHelper easyBibHelper,
     ChunkedUploadSessionHelper chunkedUploadSessionHelper,
     IOptionsMonitor <ILog> optionMonitor)
 {
     ApiContext                 = context;
     FileStorageService         = fileStorageService;
     FileWrapperHelper          = fileWrapperHelper;
     FilesSettingsHelper        = filesSettingsHelper;
     FilesLinkUtility           = filesLinkUtility;
     FileUploader               = fileUploader;
     DocumentServiceHelper      = documentServiceHelper;
     TenantManager              = tenantManager;
     SecurityContext            = securityContext;
     FolderWrapperHelper        = folderWrapperHelper;
     FileOperationWraperHelper  = fileOperationWraperHelper;
     FileShareWrapperHelper     = fileShareWrapperHelper;
     FileShareParamsHelper      = fileShareParamsHelper;
     EntryManager               = entryManager;
     UserManager                = userManager;
     WebItemSecurity            = webItemSecurity;
     CoreBaseSettings           = coreBaseSettings;
     ThirdpartyConfiguration    = thirdpartyConfiguration;
     ConsumerFactory            = consumerFactory;
     BoxLoginProvider           = ConsumerFactory.Get <BoxLoginProvider>();
     DropboxLoginProvider       = ConsumerFactory.Get <DropboxLoginProvider>();
     GoogleLoginProvider        = ConsumerFactory.Get <GoogleLoginProvider>();
     OneDriveLoginProvider      = ConsumerFactory.Get <OneDriveLoginProvider>();
     MessageService             = messageService;
     CommonLinkUtility          = commonLinkUtility;
     DocumentServiceConnector   = documentServiceConnector;
     FolderContentWrapperHelper = folderContentWrapperHelper;
     WordpressToken             = wordpressToken;
     WordpressHelper            = wordpressHelper;
     EasyBibHelper              = easyBibHelper;
     ChunkedUploadSessionHelper = chunkedUploadSessionHelper;
     Logger = optionMonitor.Get("ASC.Files");
 }
示例#12
0
 public ScopeTelegramLauncher(TenantManager tenantManager, TelegramHandler telegramHandler, ConsumerFactory consumerFactory)
 {
     TelegramLoginProvider = consumerFactory.Get <TelegramLoginProvider>();
     TenantManager         = tenantManager;
     Handler = telegramHandler;
 }