Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C# architecture Networking , +
what is the best design for a http blocker app?
 
the requirement is to rediredct certain url's and interact with the user's desktop showing the user a message when a URL is blocked. The memory footprint on the client should be minimal.
 
I have this model in mind..
 
3 main components:
 
   1. LSP/WFP driver (3rd party component) - which includes proxy to redirect and show appropriate message in browser
   2. Windows Service to manage provide driver with URLs and receive messages from Driver
   3. User Mode App (WFP) to a) receive triggers to show blocking/warning notification to user and b) view other related info
 
1. Load the driver with a list of URLs to be blocked from a windows service
2. When blocking, the driver signals an event to windows service which in turn signals a user mode application (WPF) to show the block and/or warning message.
 
Questions:
----------
1. Is there a better way/architecture I'm just not thinking of?
 
2. I am concerned about terminal servers and citrix servers. How can I implement the tray icon/user desktop interaction in the best and least memory hogging way?
 
3. The last one concerns   the Installation. What installer do you recommend I use. I have used the standard VS installer to this stage but feel I may need more flexibility for this project. Would nullsoft be a good choice? (the 3rd party LSP/WFP driver has it's own installation routine)
 
Matt
Posted 16-Jan-12 15:06pm
Edited 17-Jan-12 18:27pm
v5

1 solution

Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

The standard answer for this is a proxy server. Anything off the shelf will do this (except for the "interact with users Desktop" part.)
 
You would normally send a "blocked" page back to the browser instead of throwing up a dialog box of some kind.
 
You don't have to install anything on the workstation at all to do this. You just need to make sure the users cannot get out to the internet without going through your proxy.
  Permalink  
Comments
Matt Luthi at 17-Jan-12 23:25pm
   
Hi Dave,
 
thanks for looking at my question and answering it. What you write makes sense but the requirement for the "interact with desktop" is not negotiable due to the nature of the application which I am not able to disclose further details about. The proxy is already part of the final solution. I have updated the question to include the proxy details as well.
 
Regards,
Matt
Dave Kreskowiak at 17-Jan-12 23:46pm
   
Well, you have a BIG problem. Your proxy, or whatever, would now need TWO components, one being the proxy and the other being an application that is always running (NOT a service!) and waiting for some kind of message from the proxy that the URL is blocked. Why?
 
Because on Windows 7 services cannot display a UI on the users desktop AT ALL. They will only be shown on an alternate desktop that the user will be prompted to switch to.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 OriginalGriff 6,569
1 Sergey Alexandrovich Kryukov 6,168
2 DamithSL 5,228
3 Manas Bhardwaj 4,717
4 Maciej Los 4,150


Advertise | Privacy | Mobile
Web01 | 2.8.1411022.1 | Last Updated 17 Jan 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100