HtmlPage.Document.Cookies пустые - PullRequest
5 голосов
/ 24 мая 2011

Firefox показывает, что есть 3 (не просроченных) куки, и я могу получить к ним доступ в обычном коде ASP.NET aspx.cs.У меня также есть пользовательский элемент управления Silverlight на той же странице, но когда я пытаюсь получить доступ к тому же cookie, он не может их найти.HtmlPage.Document.Cookies число равно 0.

Что я могу делать не так?

Я использую этот код:

    private string GetCookie(string key)
    {
        string[] cookies = HtmlPage.Document.Cookies.Split(';');

        foreach (string cookie in cookies)
        {
            string[] keyValue = cookie.Split('=');
            if (keyValue.Length == 2)
            {
                if (keyValue[0] == key)
                    return keyValue[1];
            }
        }
        return null;
    }

из здесь

Я звоню из моей модели:

public AQViewModel()
{
    context = new AQContext();
    string cookie = GetCookie("MyCookie");
    .....
}

Ответы [ 2 ]

5 голосов
/ 24 мая 2011

Если эти файлы cookie являются файлами cookie HttpOnly (т. Е. Содержат флаг HttpOnly при создании), вы не сможете получить к ним доступ в клиентских сценариях, таких как JavaScript и Silverlight. Например, это относится к сеансам и файлам cookie для проверки подлинности в ASP.NET.

2 голосов
/ 24 мая 2011

Действительным решением является чтение файла cookie из службы WCF (в моем случае службы RIA) и возврат его в приложение Silverlight

  1. Добавление System.Web ссылки на местоположение ваших классов wcf
  2. var name = HttpContext.Current.Request.Cookies.Get(cookieName);

Это также будет работать для httpOnly, безопасных и обычных файлов cookie.

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