С технической точки зрения, если вы не используете состояние сеанса без файлов cookie, переменные сеанса становятся возможными с помощью файлов cookie, поэтому вы все равно косвенно их используете;)
Во всяком случае, это так же просто, как вы заявили. Вы можете просто включить некоторый код для проверки существования переменной сеанса в page_load каждой страницы:
if (Session["mySessionVar"] == null
|| Session["mySessionVar"] IS_NOT_VALID)
Response.Redirect("/path/to/login/form/");
IS_NOT_VALID представляет собой некоторый логический тест для проверки того, что данные в переменной действительно являются данными.
Чтобы иметь «глобальный класс», вам необходимо создать новый класс страницы, который наследуется от Page и выполняет проверку в вашем новом классе Page_Load. Хитрость в том, что каждая страница, которую вы хотите проверить сессионной переменной, должна быть производной от вашего нового класса, а не от класса Page. Страницы, которые не нуждаются в проверке, могут наследоваться от Page как обычно. Например, что-то вроде этого:
public class MyPageClass : Page
{
protected override void OnLoad(EventArgs e)
{
// Check to see if the session is valid
// and redirect to login if not
if (Session["mySessionVar"] == null
|| Session["mySessionVar"] IS_NOT_VALID)
Response.Redirect("/path/to/login/form/");
base.OnLoad(e);
}
}
public partial class MyLoginRequiredPage : MyPageClass
{
.
.
.
}