Внутренне, Page.Session указывает на Это Только HttpContext.Current.Session, но есть два отличия в зависимости от того, откуда он вызывается.
СтраницаДоступ к .Session возможен только из классов, унаследованных от System.Web.UI.Page, и он вызывает исключение HttpException при доступе из WebMethod.
Где доступ к HttpContext.Current.Session возможен из любого места, пока вы работаете вконтекст веб-приложения.
Другое важное отличие, когда вы можете получить доступ к Page.Session, но не можете получить доступ к HttpContext.Current.Session:
Если на вашей странице есть метод с именем GetData (унаследованный от System.Web.UI.Page), который выполняется одновременно в разных потоках от какого-либо другого метода страницы, метод GetData может обращаться к Page.Seession, но вы не можете получить доступ к HttpContext.Current.Session.
Это потому, что GetData был вызван из другого потока, поэтому HttpContext.Current имеет значение null, а HttpContext.Current.Session сгенерирует исключение нулевой ссылки, но Page.Session все равно будет присоединен к объекту страницы, так что метод страницы GetData может получить доступPage.Session.