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