So I need the dictionary object to the same instance in all my http requests
Then use a static
class, and make every method static
too, so you could call it using the following syntax:
APNLink.Link tmpLink = LinkProvider.getDeviceLink(id, User.Identity.Name);
That being said, you should be aware that in-memory static variables in an ASP.Net application are not always safe to use, because your application isn't stateless and in case the application pool is recycled, your dictionary will be re-instantiated.