We installed nuget titanium web proxy, created a window service and initiated titanium web proxy. The windows service works, runs, and start and stop times are written to a log file. But the web proxy is supposed to catch internet request and afford them, though no such events happen; nothing is logged, when i open some page with different browsers. Here is our code:
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Diagnostics;
- using System.IO;
- using System.Linq;
- using System.ServiceProcess;
- using System.Text;
- using System.Threading.Tasks;
- using Titanium.Web.Proxy;
- using Titanium.Web.Proxy.EventArguments;
-
- namespace WebProxyOne {
- public partial class MyNewService : ServiceBase {
- public ProxyServer proxyServer;
-
- public MyNewService() {
- InitializeComponent();
- }
-
- protected override void OnStart(string[] args) {
- proxyServer = new ProxyServer(true, true, true);
-
- proxyServer.BeforeRequest += OnRequest;
-
- proxyServer.Start();
-
- WriteToFile("Service is started at " + DateTime.Now);
-
- }
-
- protected override void OnStop() {
- proxyServer.Stop();
- WriteToFile("Service is stopped at " + DateTime.Now);
- }
- public void WriteToFile(string Message) {
- string path = "E:\\Downloads\\Logs";
- if (!Directory.Exists(path)) {
- Directory.CreateDirectory(path);
- }
- string filepath = "E:\\Downloads\\Logs\\ServiceLog_" + DateTime.Now.Date.ToShortDateString().Replace('/', '_') + ".txt";
- if (!File.Exists(filepath)) {
-
- using (StreamWriter sw = File.CreateText(filepath)) {
- sw.WriteLine(Message);
- }
- } else {
- using (StreamWriter sw = File.AppendText(filepath)) {
- sw.WriteLine(Message);
- }
- }
- }
-
- public async Task OnRequest(object sender, SessionEventArgs e) {
- WriteToFile(e.HttpClient.Request.Url);
-
-
-
- if (e.HttpClient.Request.Method.ToUpper() == "GET" && e.HttpClient.Request.RequestUri.AbsoluteUri.Contains("google.com")) {
- e.Ok("<!DOCTYPE html>" +
- "<html><body><h1>" +
- "Website Blocked" +
- "</h1>" +
- "<p>Blocked by titanium web proxy.</p>" +
- "</body>" +
- "</html>");
- }
-
-
- if (e.HttpClient.Request.RequestUri.AbsoluteUri.Contains("wikipedia.org")) {
- e.Redirect("https://www.paypal.com");
- }
- }
- }
- }