Why Join
Become a member
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
C# Corner Home
Technologies
MonthlyLeaders
ASK A QUESTION
Forumguidelines
Hey San
2k
2
270
Trying titanium web proxy solution
Oct 5 2020 1:43 PM
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(
"<!DOCTYPE html>"
+
"<html><body><h1>"
+
"Website Blocked"
+
"</h1>"
+
"<p>Blocked by titanium web proxy.</p>"
+
"</body>"
+
"</html>"
);
}
// Redirect example
if
(e.HttpClient.Request.RequestUri.AbsoluteUri.Contains(
"wikipedia.org"
)) {
e.Redirect(
"https://www.paypal.com"
);
}
}
}
}
Reply
Answers (
0
)
Web Content Filtering concerning specific URLs
How do you change registry settings to enable devices attached to USB