Как получить доступ к состоянию сеанса клиента из серверной программы с помощью C#
Как получить или какой механизм использовать, чтобы состояние сеанса клиентского запроса можно было получить в серверной программе с помощью c#, то есть мы используем session["anyName"] на странице asp для получения идентификатора, но что будет использоваться в консольном приложении сервера, чтобы можно было обработать несколько клиентских запросов. Пожалуйста, дайте мне механизм, который будет использоваться для выполнения этой задачи?
Что я уже пробовал:
Не имею ни малейшего представления о том, чтобы выполнить эту задачу
F-ES Sitecore
Вам нужно будет реализовать собственное управление сеансом. Каждому клиенту потребуется ключ, поэтому вам нужно случайным образом создать значение для ключа и записать этот ключ в ответ в виде файла cookie, чтобы клиент повторно отправлял его с каждым запросом. Ваш сеанс может находиться в памяти, поэтому у вас будет Dictionary
ZurdoDev
Я бы предложил опубликовать это решение, но только упоминая БД. Если он находится в памяти, то он не будет работать с обоими asp.net и их собственное приложение. У меня сложилось впечатление, что они хотят, чтобы сайт работал, но и это другое приложение имело доступ к сеансу. БД-это единственный реальный вариант, который я вижу для этого.
На самом деле, это просто звучит как плохой дизайн, но я, возможно, что-то упускаю.
F-ES Sitecore
Если вы посмотрите на другие его вопросы, то увидите, что он пытается эффективно написать свой собственный веб-сервер. Однако не на 100% ясно, что именно означает этот пост, и именно поэтому я неохотно публикую его в качестве решения :) Я не могу понять, пытается ли он "поделиться" сеансом между своим консольным приложением и asp.net приложение (невозможно) или если он просто реализует свою собственную версию сеанса.
Member 10752313
Спасибо, на самом деле у меня есть две html-страницы под названием Request.html и Landing.html. В Request.html у меня есть форма с методом post. В Landing.html I разнесенные поля из Request.html это должно быть показано. Это должно быть обработано через серверную программу. Мой сервер имеет отступ для обработки нескольких запросов. Поэтому, если я сгенерирую ключ с помощью guid() и установлю в ответ cookie, то будет ли он возвращен в Landing.html погрузка?
F-ES Sitecore
Если ваш серверный код отправляет request.html клиенту, то если вы добавите файл cookie с вашим идентификатором сеанса вместе с ответом, то когда клиент отправит форму и запросит landing.html затем он должен передать этот файл cookie обратно в ваш код, где вы сможете его прочитать...если клиент правильно запрограммирован. Если клиент является веб-браузером, то он будет правильно запрограммирован на обработку файлов cookie, и вы будете в порядке. Если клиент также является чем-то, что вы написали сами, то вам нужно будет убедиться, что ваш код правильно обрабатывает файлы cookie.
Member 10752313
Итак, мой вопрос заключается в том, как я могу сгенерировать идентификатор сеанса в моем серверном коде для запроса клиента?
F-ES Sitecore
Самый простой способ-просто использовать GUID
Guid id = Guid.Метод newguid();
Member 10752313
@F-ES Sitecore большое вам спасибо за эту идею.