private void InitProviders()
        {
            IEnumerable <LoginProfile> linkedAccounts = new List <LoginProfile>();

            if (SecurityContext.IsAuthenticated)
            {
                linkedAccounts = GetLinker().GetLinkedProfiles(SecurityContext.CurrentAccount.ID.ToString());
            }

            var fromOnly = string.IsNullOrWhiteSpace(HttpContext.Current.Request["fromonly"]) ? string.Empty : HttpContext.Current.Request["fromonly"].ToLower();

            foreach (var provider in AuthProviders.Where(provider => string.IsNullOrEmpty(fromOnly) || fromOnly == provider || (provider == "google" && fromOnly == "openid")))
            {
                if (InviteView && InviteExceptProviders.Contains(provider))
                {
                    continue;
                }

                var loginProvider = ProviderManager.GetLoginProvider(provider);
                if (loginProvider != null && loginProvider.IsEnabled)
                {
                    AddProvider(provider, linkedAccounts);
                }
            }
        }
        private void InitProviders()
        {
            IEnumerable <LoginProfile> linkedAccounts = new List <LoginProfile>();

            if (SecurityContext.IsAuthenticated)
            {
                linkedAccounts = GetLinker().GetLinkedProfiles(SecurityContext.CurrentAccount.ID.ToString());
            }

            var fromOnly = string.IsNullOrWhiteSpace(HttpContext.Current.Request["fromonly"]) ? string.Empty : HttpContext.Current.Request["fromonly"].ToLower();

            var providers = new List <string>
            {
                ProviderConstants.Google,
                ProviderConstants.Facebook,
                ProviderConstants.Twitter,
                ProviderConstants.LinkedIn,
                ProviderConstants.MailRu,
                ProviderConstants.VK,
                ProviderConstants.Yandex,
                ProviderConstants.GosUslugi
            };

            foreach (var provider in providers.Where(provider => string.IsNullOrEmpty(fromOnly) || fromOnly == provider || (provider == "google" && fromOnly == "openid")))
            {
                var loginProvider = ProviderManager.GetLoginProvider(provider);
                if (loginProvider != null && loginProvider.IsEnabled)
                {
                    AddProvider(provider, linkedAccounts);
                }
            }
        }
Ejemplo n.º 3
0
        [Read("", false, false)] //NOTE: this method doesn't requires auth!!!  //NOTE: this method doesn't check payment!!!
        public CapabilitiesData GetPortalCapabilities()
        {
            var result = new CapabilitiesData
            {
                LdapEnabled = false,
                Providers   = null,
                SsoLabel    = string.Empty,
                SsoUrl      = string.Empty
            };

            try
            {
                if (SetupInfo.IsVisibleSettings(ManagementType.LdapSettings.ToString()) &&
                    (!CoreContext.Configuration.Standalone ||
                     CoreContext.TenantManager.GetTenantQuota(TenantProvider.CurrentTenantID).Ldap))
                {
                    var settings = LdapSettings.Load();

                    result.LdapEnabled = settings.EnableLdapAuthentication;
                }
            }
            catch (Exception ex)
            {
                LogManager.GetLogger("ASC").Error(ex.Message);
            }

            try
            {
                result.Providers = AccountLinkControl.AuthProviders
                                   .Where(loginProvider =>
                {
                    var provider = ProviderManager.GetLoginProvider(loginProvider);
                    return(provider != null && provider.IsEnabled);
                })
                                   .ToList();
            }
            catch (Exception ex)
            {
                LogManager.GetLogger("ASC").Error(ex.Message);
            }

            try
            {
                if (SetupInfo.IsVisibleSettings(ManagementType.SingleSignOnSettings.ToString()) &&
                    (!CoreContext.Configuration.Standalone ||
                     CoreContext.TenantManager.GetTenantQuota(TenantProvider.CurrentTenantID).Sso))
                {
                    var settings = SsoSettingsV2.Load();

                    if (settings.EnableSso)
                    {
                        var uri = HttpContext.Current.Request.GetUrlRewriter();

                        var configUrl = GetAppSettings("web.sso.saml.login.url", "");

                        result.SsoUrl = string.Format("{0}://{1}{2}{3}", uri.Scheme, uri.Host,
                                                      (uri.Port == 80 || uri.Port == 443) ? "" : ":" + uri.Port, configUrl);

                        result.SsoLabel = settings.SpLoginLabel;
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.GetLogger("ASC").Error(ex.Message);
            }

            return(result);
        }
Ejemplo n.º 4
0
        [Read(Check = false)] //NOTE: this method doesn't requires auth!!!  //NOTE: this method doesn't check payment!!!
        public CapabilitiesData GetPortalCapabilities()
        {
            var result = new CapabilitiesData
            {
                LdapEnabled = false,
                Providers   = null,
                SsoLabel    = string.Empty,
                SsoUrl      = string.Empty
            };

            try
            {
                if (SetupInfo.IsVisibleSettings(ManagementType.LdapSettings.ToString()) &&
                    (!CoreBaseSettings.Standalone ||
                     TenantManager.GetTenantQuota(TenantManager.GetCurrentTenant().TenantId).Ldap))
                {
                    //var settings = SettingsManager.Load<LdapSettings>();

                    //result.LdapEnabled = settings.EnableLdapAuthentication;
                    result.LdapEnabled = false;
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
            }

            try
            {
                result.Providers = ProviderManager.AuthProviders.Where(loginProvider =>
                {
                    var provider = ProviderManager.GetLoginProvider(loginProvider);
                    return(provider != null && provider.IsEnabled);
                })
                                   .ToList();
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
            }

            try
            {
                if (SetupInfo.IsVisibleSettings(ManagementType.SingleSignOnSettings.ToString()) &&
                    (!CoreBaseSettings.Standalone ||
                     TenantManager.GetTenantQuota(TenantManager.GetCurrentTenant().TenantId).Sso))
                {
                    //var settings = SettingsManager.Load<SsoSettingsV2>();

                    //if (settings.EnableSso)
                    //{
                    var uri = HttpContextAccessor.HttpContext.Request.GetUrlRewriter();

                    var configUrl = Configuration["web:sso:saml:login:url"] ?? "";

                    result.SsoUrl = string.Format("{0}://{1}{2}{3}", uri.Scheme, uri.Host,
                                                  (uri.Port == 80 || uri.Port == 443) ? "" : ":" + uri.Port, configUrl);
                    result.SsoLabel = string.Empty;
                    //    result.SsoLabel = settings.SpLoginLabel;
                    //}
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
            }

            return(result);
        }