如何解决HtmlPage.Document.Cookies为空
| Firefox显示有3个(未过期的)Cookie,我可以使用后面的常规ASP.NET aspx.cs代码访问它们。我在同一页面上也有Silverlight用户控件,但是当我尝试访问相同的cookie时,找不到任何cookie。 “ 0”计数为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\");
.....
}
解决方法
如果这些Cookie是HttpOnly Cookie(即在创建时包含
HttpOnly
标志),则您将无法在客户端脚本(如javascript和Silverlight)中访问它们。例如,会话和ASP.NET中的表单身份验证cookie就是这种情况。
,一个有效的解决方案是从WCF服务(在我的情况下是RIA服务)中读取Cookie,并将其返回给Silverlight应用
在您的wcf类所在的位置添加“ 4”引用
var name = HttpContext.Current.Request.Cookies.Get(cookieName);
这也适用于httpOnly,安全和常规Cookie。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。