Nano Hash - криптовалюты, майнинг, программирование

Сессия ASP.Net и файлы cookie для удержания кого-либо в системе

У меня есть существующий сайт, который я принимаю, и прямо сейчас он хранит в переменной сеанса идентификатор текущего пользователя, вошедшего в систему (если он вообще вошел в систему - в противном случае я уверен, что это пустая строка или ноль или что-то в этом роде).

Теперь клиент хочет, чтобы после того, как кто-то вошел в систему, «держать» его в системе на этом компьютере в течение неопределенного времени.

Я полагаю, что сеансы ASP.net имеют максимальное время простоя 1 день. Веб-сайт не очень хорошо написан во флэш-части (весь внешний интерфейс - флэш-память), и флэш-память будет обрабатывать вход в систему, а затем, пока флэш-память не будет перезагружена, предположим, что пользователь все еще «вошел в систему». .

Я думаю, что мое решение состоит в том, чтобы ТАКЖЕ хранить файл cookie на стороне клиента с некоторым значением GUID и хранить в базе данных связанный идентификатор пользователя... вроде сеанса, который никогда не истекает. Итак, когда страница загружается, я могу проверить свой файл cookie, использовать его для выбора идентификатора пользователя из базы данных, и если мы найдем его, то установить значение сеанса, которое говорит, что пользователь 23 вошел в систему.

Кто-нибудь видит какие-либо проблемы с этой точки зрения? Вы бы порекомендовали что-то другое? Я действительно не хочу рефакторить кучу существующего кода, а просто вставлю это сверху...

PS - безопасность на самом деле не проблема. Единственная причина, по которой люди входят в систему, заключается в том, что мы можем отслеживать заказы человека, но деньги не переходят из рук в руки через этот веб-сайт. Также нет личной информации, которую пользователь может просматривать или редактировать.

06.12.2008

Ответы:


1

Вот как я это делаю. На самом деле у меня есть файл cookie, который содержит их логин и пароль, таким образом, я могу автоматически входить в систему, если они не вошли в систему. Срок действия файла cookie истекает через пару дней бездействия. Недостатком является то, что все забывают свой пароль, потому что единственный раз, когда им действительно нужно вводить свой пароль, это когда они возвращаются из продолжительного отпуска.

Это для внутреннего приложения с теми же требованиями клиента, что и у вас, и это работает... и делает клиента счастливым.

Одна вещь, которую мы можем в конечном итоге сделать, — это просто использовать аутентификацию Windows, которая на самом деле может работать лучше в этом случае.

06.12.2008
  • Наши пользователи не находятся в одной сети, поэтому сетевая аутентификация здесь не подходит, но спасибо за совет. Я собираюсь сохранить руководство в файле cookie (вместо имени пользователя/пароля, как вы делаете) и посмотреть его. Кажется, мы на одной волне. Спасибо! 07.12.2008
  • Отлично! Что бы это ни стоило, я шифрую значения cookie. 07.12.2008
  • РЖУ НЕ МОГУ! Да, хотя это не имело бы значения, меня просто УБИВАЕТ хранить имена пользователей и пароли в виде простого текста. Я СДЕЛАЮ то, что вы рекомендуете, - сохраните имя пользователя/пароль на всей зашифрованной стороне клиента в файле cookie. Ни одна БД не меняется таким образом. Еще раз спасибо. 07.12.2008
  • Зашифрованное или нет, сохранение имени пользователя и/или пароля на стороне клиента в файле cookie - это просто дурной тон, ИМХО. 06.03.2009

  • 2

    Я так делаю, но проблема с этим (по крайней мере, я думаю, что это проблема) заключается в том, что когда вы сохраняете имя пользователя и пароль в файле cookie, при добавлении файла cookie не происходит никакого шифрования. Если вы посмотрите на файлы cookie в своем браузере, имя пользователя и пароль отображаются там как день. Можно ли как-то зашифровать файлы cookie, которые вы храните? Или как бы вы справились с этим?

    17.02.2009
  • Почитав ветку, понял, что не все так однозначно. Я имел в виду, что на стороне сервера я шифрую имя пользователя/пароль, а затем отправляю это зашифрованное значение в виде файла cookie. При последующем запросе я получаю зашифрованное значение и расшифровываю его на стороне сервера. Ничего в открытом тексте на стороне клиента. 18.02.2009

  • 3

    Проверьте этот блог, разместив http://timmaxey.net/archive/2009/03/06/asp.net-cookie-auto-log-in.aspx в основном вам нужно сохранить файл cookie с помощью серии guid и токена, токена, в моем случае все время меняется, серия — это то, что создается на основе чего-то, например, комбинации guid и id или чего-то еще, тогда guid всегда хранится у пользователя. Существует таблица файлов cookie для хранения этой информации и т. д... довольно безопасно, не на 100%, но довольно хорошо... Tim Maxey

    06.03.2009

    4

    Я рекомендую использовать блок приложений Crypto Enterprise Library для хранения зашифрованного файла cookie, который представляет собой не что иное, как GUID. Получите GUID и используйте таблицу сеансов в базе данных для отслеживания информации о пользователе.

    В событии начала сеанса получите информацию о пользователе и кэшируйте ее.

    Не рекомендуется использовать объект сеанса для информации о пользователе, поскольку он не будет работать в веб-ферме, если вы не используете базу данных для состояния сеанса.

    06.03.2009

    5

    В этот момент вы в основном прокручиваете свое собственное состояние сеанса, и меня это устраивает. Однако я бы не пошел по пути сохранения имени пользователя/пароля в файле cookie (даже если он зашифрован). Невозможно истечь срок действия на стороне сервера. Вы всегда можете удалить свою строку в таблице, чтобы заставить пользователя снова войти в систему, но если они владеют именем пользователя/паролем, они держат ключи от королевства.

    06.03.2009
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..