Exemple #1
0
        static void Main()
        {
            Trace.Listeners.Add(new ConsoleTraceListener());
            var configuration = SimpleProxyConfigurationSection.GetConfigSection();

            var proxy = new Proxy(
                new HttpListenerFactory(),
                new WebRequestFactory(),
                configuration.Listeners.Cast <ListenerElement>().Select(t => t.Prefix),
                AuthenticationSchemes.Anonymous);

            foreach (RequestFilterElement requestFilter in configuration.RequestFilters)
            {
                var filter = PluginLoader.LoadRequestFilter(requestFilter.Type);

                if (filter is BlacklistFilter)
                {
                    var blackListFilter = (BlacklistFilter)filter;
                    foreach (RegexElement regex in configuration.Blacklist)
                    {
                        blackListFilter.HostRegExs.Add(regex.Regex);
                    }
                }
                if (filter is WhitelistFilter)
                {
                    var whitelistFilter = (WhitelistFilter)filter;
                    foreach (RegexElement regex in configuration.Whitelist)
                    {
                        whitelistFilter.HostRegExs.Add(regex.Regex);
                    }
                }
                proxy.AddRequestFilter(filter);
            }
            Trace.TraceInformation("Starting proxy server...");
            proxy.Start();

            System.Console.WriteLine("Press any key to quit...");
            System.Console.ReadKey();

            Trace.TraceInformation("Stopping proxy server...");
            proxy.Stop();
        }
        protected override void OnStart(string[] args)
        {
            Trace.Listeners.Add(new ConsoleTraceListener());
            var configuration = SimpleProxyConfigurationSection.GetConfigSection();

            _proxy = new Proxy(
                new HttpListenerFactory(),
                new WebRequestFactory(),
                configuration.Listeners.Cast <ListenerElement>().Select(t => t.Prefix),
                AuthenticationSchemes.Anonymous);

            foreach (RequestFilterElement requestFilter in configuration.RequestFilters)
            {
                var filter = PluginLoader.LoadRequestFilter(requestFilter.Type);

                if (filter is BlacklistFilter)
                {
                    var blackListFilter = (BlacklistFilter)filter;
                    foreach (RegexElement regex in configuration.Blacklist)
                    {
                        blackListFilter.HostRegExs.Add(regex.Regex);
                    }
                }
                if (filter is WhitelistFilter)
                {
                    var whitelistFilter = (WhitelistFilter)filter;
                    foreach (RegexElement regex in configuration.Whitelist)
                    {
                        whitelistFilter.HostRegExs.Add(regex.Regex);
                    }
                }
                _proxy.AddRequestFilter(filter);
            }
            Trace.TraceInformation("Starting proxy server...");
            _proxy.Start();
        }