Для новых приложений Я стараюсь их избегать и просто предпочитаю зашифрованные или подписанные куки. По общему признанию, это только что появившееся личное предпочтение: просто потому, что это еще одна вещь, которую нужно сломать, и после двухлетней работы по поддержанию работоспособности сайта 24/7/365, это единственное, что сломалось при головокружении, таинственный путь. Также легко забыть добавить [Serializable] на ваши объекты и наблюдать, как они взрываются во время выполнения, когда они пытаются сохраниться в сеансе вне процесса. Так что это еще один механизм, чтобы сказать, так сказать.
Тем не менее, я использую сеансы в течение лет без каких-либо значительных проблем, за исключением того, что мне нужно постоянно заботиться о том, чтобы хранилище сеансов работало и работало. Если вы работаете в InProc, вам нужно беспокоиться о том, что сессии будут выгружаться при каждом перезапуске пула приложений, и это может привести к всплеску использования памяти рабочего процесса, что является еще одним недостатком; с помощью одного из других методов приятно иметь возможность выпускать точечные обновления для веб-сайта и не влиять на текущие состояния клиентов.
(лично я не видел проблем с масштабированием сеансов даже на нескольких серверах. Но опять же, я работаю в небольшом бизнесе [около 3 просмотров в секунду]. Я думаю, что вы все равно обычно общаетесь с базой данных для чего-то стоимость получения сеанса находится в той стирке.)
Так что использование сессий не является плохим выбором, вам просто нужно помнить, чтобы не увлекаться этим. Думайте об этом как о куки-файле на стороне сервера, пытаясь ограничить себя искусственным барьером в 4 КБ или около того. Что касается существующих приложений, то я, конечно же, не беспокоюсь о том, чтобы их не обрабатывать, но в целом я предпочитаю сделать это простым и попытаться обойтись без него.