ASP.NET не предоставляет никаких событий, которые могут выполняться после бездействия.Возможно, вы сможете подключиться к событию окончания сеанса (Session_end, если я правильно помню), но я знаю, что это событие не очень надежно.
Самый простой способ сделать это - отследитьпользователи в последний раз активности в таблице.Затем обновите время последнего действия для каждого действия (отображение и постбэк).Проведите еще одну процедуру, которая запускается каждую минуту, сканируя стол на наличие людей, которые неактивны в течение 20 минут.Когда эти люди найдены, сбросьте их запись user_status.