Download C# Source Code |
Stupid user tricks...At least that's what we call them where I work. Those users who can't get something on a Web site to work and claim they are typing in exactly what you are telling them and it still doesn't work. As well all know, this is rarely the case. Wouldn't it be nice to be able to see exactly what they are typing in and experience their current environment as close as possible? Funny how mother necessity tends to inspire us these days. |
It just so happens that I was working on a newly requested feature that uses modules to intercept http requests for tracking member specific page utilization across our Web sites (I'll briefly touch on this below) that I was asked this very question. After a couple of days of tinkering, I've come up with a prototype or proof of concept that this is in fact possible with limited changes to an existing Web site. The code techniques for intercepting http requests has been covered on just about every tutorial site or programming book. So, I won't bore you with the basics. This link from MSDN pretty much does that for us: Securely Implement Request Processing, Filtering, and Content Redirection with HTTP Pipelines in ASP.NET. |
The goal was to develop a way to that allows a technical support representative to grab or hijack a user's session variables and automatically route the tech support rep directly to the last page the user was on. There would no need for a rep to lookup the user and their login information or ask a ton of questions about where they were on the site and how they got there. If you have ever overheard technical support calls, you know how difficult and frustrating this can be for both the user and the support rep. |
As a secondary goal, it would be helpful for the support rep to be able to monitor form element submissions in real time. Identifying miskeys from a user can be critical to resolving problems. And last, but not least, implement this solution with little to no changes to existing production Web sites and make it reusable across multiple sites. This is a pretty tall order for a production ready application. So for the purposes of this article, I kept things pretty simple and scaled down. I also didn't implement security percautions that would have made the code sample more complex to step through. |
|