An old ASP.NET solution with lots of nuggets that I have used and expanded on over the years. Originally authored by a colleague of mine.