Ознакомьтесь с этой статьей http://sandblogaspnet.blogspot.com/2008/03/methods-in-globalasax.html
Событие запуска сеанса запускается только тогда, когда начинается новый сеанс для пользователя. Как только «Session_Start» для пользователя запущено, тогда, если пользователь делает последующий запрос к любому ресурсу в приложении, это событие вообще не инициируется. Событие инициируется только тогда, когда истекает сеанс пользователя, а затем пользователь снова пытается получить доступ к любому ресурсу в приложении.
Вы уверены, что не ищете Application_Start? Если нет, то до тех пор, пока вы сбрасываете сеанс, это событие должно вызываться.
РЕДАКТИРОВАТЬ: Также ознакомьтесь с этой статьей о ком-то, кто пытался сделать то же самое, что и вы http://forums.asp.net/t/1608241.aspx/1
С этой страницы:
Вы правы, я только что проверил это, поместив <sessionState timeout="1"/>
в мой файл Web.config.
Потом я подождал 1 минуту и нажал на ссылку на странице. Это
немедленно вернулся в Session_Start и повторно аутентифицировал
пользователь.
РЕДАКТИРОВАТЬ 2: Попробуйте вызвать Session.Abandon () со своей стартовой страницы. Он должен удалить сеанс и потребовать, чтобы пользователь начал новый.