Firefox显示有3个(未过期的)Cookie,我可以使用后面的常规ASP.NET aspx.cs代码访问它们。我在同一页面上也有一个Silverlight用户控件,但是当我尝试访问相同的cookie时,它找不到任何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;
    }

来自here

我从 View 模型中调用它:
public AQViewModel()
{
    context = new AQContext();
    string cookie = GetCookie("MyCookie");
    .....
}

最佳答案

如果这些cookie是HttpOnly cookies(即在创建时包含HttpOnly标志),则您将无法在客户端脚本(例如javascript和Silverlight)中访问它们。例如, session 和ASP.NET中的表单例份验证cookie就是这种情况。

关于c# - HtmlPage.Document.Cookies为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6103543/

10-13 06:45