Be default, your page does not implement IRequireSessionState, so your page should not be able to access HttpContext.Current.Session. But why you can always use that it? It is because the asp.net compiler and code generator modify your page to support the interface, so you don't need to explicitly implement this interface your page.