Проблема с предпочтением сеансов вместо файлов cookie для «безопасности» заключается в том, что сеансы ИСПОЛЬЗУЮ файлы cookie для идентификации пользователя, поэтому любая проблема с файлами cookie присутствует в сеансах.
При использовании Sessions следует помнить о локальности данных. Если вы планируете масштабировать до нескольких веб-серверов в любой момент, вы должны быть очень осторожны при хранении больших объемов данных в объектах сеанса.
Поскольку вы используете .NET, вам придется написать свой собственный поставщик хранилища сеансов, чтобы справиться с этим, поскольку InProc не будет масштабироваться выше 1 сервера, поставщик БД - это просто плохая идея ИЗБЕГАЙТЕ БД читает здесь при масштабировании, а не добавлять больше), а у StateServer много проблем с емкостью. (В прошлом я использовал поставщика хранилища сессий memcached с некоторым успехом для борьбы с этой проблемой).
Я бы посмотрел на подписанные файлы cookie и решил бы использовать их вместо обычных файлов cookie или сеансов. Это решает многие проблемы безопасности и устраняет проблемы локальности с сеансами. Имейте в виду, что они возвращаются туда и обратно при каждом запросе, поэтому сохраняйте данные экономно.