public static CaptchaConfiguration GetConfig()
        {
            CaptchaConfiguration captchaConfig = null;

            if (
                (HttpRuntime.Cache["CCaptchaConfig"] != null) &&
                (HttpRuntime.Cache["CCaptchaConfig"] is CaptchaConfiguration)
                )
            {
                return((CaptchaConfiguration)HttpRuntime.Cache["CCaptchaConfig"]);
            }
            else
            {
                String configFileName = "CCaptcha.config";
                if (ConfigurationManager.AppSettings["CCaptchaConfigFileName"] != null)
                {
                    configFileName
                        = ConfigurationManager.AppSettings["CCaptchaConfigFileName"];
                }

                if (!configFileName.StartsWith("~/"))
                {
                    configFileName = "~/" + configFileName;
                }

                String pathToConfigFile
                    = HttpContext.Current.Server.MapPath(configFileName);

                XmlDocument configXml = new XmlDocument();
                configXml.Load(pathToConfigFile);
                captchaConfig
                    = new CaptchaConfiguration(configXml.DocumentElement);

                AggregateCacheDependency aggregateCacheDependency
                    = new AggregateCacheDependency();

                aggregateCacheDependency.Add(new CacheDependency(pathToConfigFile));

                System.Web.HttpRuntime.Cache.Insert(
                    "CCaptchaConfig",
                    captchaConfig,
                    aggregateCacheDependency,
                    DateTime.Now.AddYears(1),
                    TimeSpan.Zero,
                    System.Web.Caching.CacheItemPriority.Default,
                    null);

                return((CaptchaConfiguration)HttpRuntime.Cache["CCaptchaConfig"]);
            }

            //return captchaConfig;
        }
Ejemplo n.º 2
0
        private static void Initialize()
        {
            //try
            //{
            CaptchaConfiguration config = CaptchaConfiguration.GetConfig();

            if (
                (config.DefaultProvider == null) ||
                (config.Providers == null) ||
                (config.Providers.Count < 1)
                )
            {
                throw new ProviderException("You must specify a valid default provider.");
            }


            providerCollection = new CaptchaProviderCollection();

            ProvidersHelper.InstantiateProviders(
                config.Providers,
                providerCollection,
                typeof(CaptchaProvider));

            providerCollection.SetReadOnly();
            defaultProvider = providerCollection[config.DefaultProvider];

            //}
            //catch (Exception ex)
            //{
            //    initializationException = ex;
            //    isInitialized = true;
            //    throw ex;
            //}

            //isInitialized = true;
        }