1.) Сеанс - это пользовательский словарь (у каждого пользователя есть свой собственный), а статические / общие переменные имеют широкое применение (если приложение работает / все сеансы не отменены).
Обычно вы используете Session, если хотите хранить данные, принадлежащие одному пользователю, и статические переменные, если вы хотите поделиться ими со всеми пользователями.
Поэтому Session менее масштабируем, чем статические переменные, потому чтооно увеличивается с увеличением количества пользователей.Одним из недостатков статических переменных (или ASP.Net Cache ) является то, что вам нужно избегать конфликтов, когда разные пользователи обращаются к ним / изменяют их параллельно самостоятельно.Производительность - одно из преимуществ статических переменных / кеша.
Так что ваш ответ на Session был верным.Если вы хотите использовать статические переменные для пользовательских данных, вы можете использовать статический словарь с пользователем (например, MembershipUser или его ключом провайдера в качестве ключа) и данными, которые вы хотите сохранить в качестве значения.Но обычно вы используете для этого Session, как правильно ответили.
2.) Определите, принимает ли браузер файлы cookie
Клиент может отключить файлы cookie.Один из способов проверить, отключены ли cookie-файлы, - записать cookie-файл в ответ и в следующем запросе проверить, существует ли cookie-файл.Если cookie не существует, вы должны предположить, что cookie отключены.
Здесь - дополнительная информация о файлах cookie.