Рейтинг:
0
OriginalGriff
Сеансы не являются клиентской стороной, они являются серверной стороной - как и весь код C#. На клиенте выполняется только Javascript, C# и VB всегда выполняются на сервере и не имеют прямого доступа к клиентским ресурсам.
Таким образом, доступ к переменным сеанса на стороне сервера тривиален:
string userName = Session["Name"].ToString();
Вы можете получить доступ к переменным сервера на стороне клиента в Javascript:
<script type="text/javascript">
function showName() {
alert('<%=Session["Name"].ToString() %>');
}
</script>
Member 10752313
На самом деле я разрабатываю сервер, мой вопрос заключается в том, как сеанс["имя"], установленный в веб-форме, доступен на моем сервере для создания уникального идентификатора, т. е. как пара имя-значение, созданная в веб-форме, отправляется на сервер?
OriginalGriff
Не пытайтесь печатать как можно меньше: мы получаем только то, что вы печатаете для работы, мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли!
Само по себе это предложение не имеет смысла: если переменная сеанса была создана - и не имеет значения, откуда она была создана, - то применяются две вещи.
1) он находится в коллекции сеансов, чтобы код C# мог получить к нему прямой доступ.
2) он создается серверным кодом, даже если этот код выполняется при загрузке страницы как часть процесса генерации HTML, как в предупреждающем сообщении в приведенном мной примере.
Member 10752313
Хорошо.
Я постараюсь внести ясность.
Я создал уникальный идентификатор для каждого клиентского запроса на сервере как
Guid clientId = Guid.Метод newguid();
Куки cookie посредством setcookie = новый файл "cookie" ("ASPSESSIONID", параметр ClientID.Метод toString());
HttpListenercontext.Ответ.AppendCookie(cookie посредством setcookie);
Если клиент установил сеанс ["Name"]=Roy; как я могу получить доступ к имени Roy на моем сервере с помощью HttpListenerContext?
OriginalGriff
Хм. Вы понимаете, что не показываете никакой связи между "Роем" и вашим значением Guid? И без некоторого представления о том, как они связаны - и особенно о том, как они постоянно хранятся, - мы не можем иметь никакого представления о том, как получить их позже?
Почему бы не сохранить это имя и в вашем файле cookie? Или получить доступ к вашей БД с помощью Guid?
F-ES Sitecore
Обычно сеанс существует только на сервере, клиент никогда не собирается устанавливать переменные сеанса. Как говорит Грифф, если вам нужен механизм, при котором клиент и сервер могут совместно использовать состояние, то хранение этих данных в файлах cookie-это правильный путь, если состояние необходимо сохранить. Если данные просто передаются от клиента к серверу, то это делается с помощью строки запроса или переменных формы.