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)) {
- // Create a file to write to.
- 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);
- // To cancel a request with a custom HTML content
- // Filter URL
- if (e.HttpClient.Request.Method.ToUpper() == "GET" && e.HttpClient.Request.RequestUri.AbsoluteUri.Contains("google.com")) {
- e.Ok("" +
- "
"
+ - "Website Blocked" +
- "" +
- "
Blocked by titanium web proxy.
" + - "" +
- "");
- }
- // Redirect example
- if (e.HttpClient.Request.RequestUri.AbsoluteUri.Contains("wikipedia.org")) {
- e.Redirect("https://www.paypal.com");
- }
- }
- }
- }
Replies
Know the answer? Post it — somebody with the same question will find it here.