Cleaned up version of AppHarbor.Web.Security with generic interface