Можем ли мы получить доступ к переменной Session в Asp.Net из приложения SIlverlight - PullRequest
2 голосов
/ 10 января 2011

Можем ли мы получить доступ к переменной Session в Asp.Net из приложения SIlverlight

Ответы [ 3 ]

5 голосов
/ 10 января 2011

Существует два подхода к получению значения переменной Session.

Первое - включить значение в сгенерированный HTML-код страницы ASPX, на которой размещено приложение Silverlight. Добавьте значение в тег InitParams <Param> объекта silverlight.

 <param name="initParams" value="myValue=<%=Server.HTMLEncode(Session["myValue"].ToString())%>" />

Теперь в коде Silverlight вы можете получить доступ к этому значению: -

string myValue = Application.Current.Host.InitParams["myValue"];

Выше приведен наиболее вероятный сценарий. Если, хотя вам также необходимо изменить значение сеанса во время выполнения приложения Silverlight и / или прочитать потенциально изменяемое значение для переменной, то все будет сложнее.

В этот момент многие, вероятно, посоветовали бы создать какой-нибудь WCF, чтобы помочь с этим. В качестве альтернативы я мог бы склониться к созданию файла .ashx, который просто принимал и / или возвращал некоторый Xml, который может помочь в такой очень простой работе на стороне сервера.

2 голосов
/ 10 января 2011

Приложение Silverlight запущено в клиентском браузере, поэтому вы не можете получить доступ к объекту Session из него.

Сеанс - это объект, созданный asp.net для каждого создаваемого им сеанса - он использует cookie или URL для распознавания сеанса пользователя.

0 голосов
/ 04 апреля 2013

Ответ AnthonyWJones выше работает хорошо.Мне просто нужно было сделать одно небольшое изменение в моей ситуации.Переменные initParams на самом деле являются парами ключ-значение и должны быть указаны как таковые для правильного доступа к ним из кода Silverlight:

<param name="initParams" value="myKey1=myValue1,myKey2=myValue2" />

Возможно, это изменилось с момента предыдущего ответа в 2011 году. Это соответствует .Net 4.5и Silverlight 5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...