Если вы используете Session State, я бы хранил (в идеале в кэше всего приложения или, альтернативно, в базе данных вашего приложения) запись с ключом User ID, сохраняя Session ID.
Затем проверьте зарегистрированный идентификатор пользователя по текущему идентификатору сеанса, когда вы хотите обнаружить несколько входов в систему. Если идентификатор сеанса, хранящийся в базе данных, не совпадает с идентификатором сеанса текущего сеанса, это может означать несколько входов в систему.
Вы должны иметь дело с истечением значений из хранилища данных (именно поэтому кэш приложения может быть лучше, чем база данных приложения) и с обычным завершением сеанса (при выходе из системы), но если вы используя его, чтобы предупредить пользователя, это, вероятно, достаточно хорошо.