Здесь есть две проблемы. Во-первых, это разница между куки и сессией. Если вы не используете сеансы без файлов cookie (например, уникальные идентификаторы в URL), сеанс - это файл cookie с очень коротким сроком действия. Вы можете легко настроить приложение для совместного использования сеанса на нескольких серверах, используя сервер состояний ( ScaleOut , Скорость , SQL Server )
Это, конечно, предполагает, что вы используете куки пользователя для хранения только уникального идентификатора и связываете его со всеми истинными данными на сервере, возможно, в базе данных. Тем не менее:
Хранение конфиденциальных данных в cookie-файлах пользователя, даже если они зашифрованы, на самом деле не , что безопасно, потому что оно должно быть дешифруемым, что означает, что оно уязвимо. Каждый раз, когда вы решаете использовать двустороннее шифрование в своем приложении, вы берете на себя гораздо более тяжелое бремя криптографии, чтобы поддерживать тот же уровень безопасности. Если в вашем распоряжении нет значительных криптографических знаний, вероятно, лучше выбрать безопасный маршрут и просто не делать этого.
Итак, короче говоря, используйте встроенный сеанс или сверните свой собственный, в любом случае убедитесь, что единственная часть информации, которую вы отправляете клиенту, - это неопровержимый идентификатор, который вы привязываете к данным, хранящимся на вашем конец.
Запоминание пользователя с cookie :
Назначьте ... временный идентификатор, связанный с этим пользователем, например GUID. Поскольку GUID являются астрономически уникальными и практически защищенными от столкновений, их также практически невозможно угадать или предсказать извне системы.
Преимущество использования собственной функции сеанса / «помни меня» на основе файлов cookie заключается в том, что она дает больше контроля над тем, как долго информация сохраняется, распространяется и т. Д. С другой стороны, она представляет собой большую работу, некоторые из который повторно реализует функциональность, которая поставляется с ASP.NET Session. Обычно я рекомендую использовать то, что уже есть, если вы не можете четко сформулировать некоторые требования к ведению бизнеса, которые исключают это как вариант.