这是我的cookie值:
email%3Drrr%2540test.com%26password%3Da8f5f167f44f4964e6c998dee827110c
那是我的代码:
Request.Cookies["SolidDomain"]["email"];
Request.Cookies["SolidDomain"]["password"];
或
string email1 = Request.Cookies.Get("SolidDomain").Values.Get("email");
string password2 = Request.Cookies.Get("SolidDomain").Values.Get("password");
在这两种情况下我都是null。这有什么不对?
答案 0 :(得分:1)
你可以没有问题地拥有子键cookie,但我认为你给我们的字符串不是使用子键。实际上,您发布的字符串可以直接访问:
Request.Cookies["email"];
Request.Cookies["password"];
如果您可以检查子项的结构,可以使用以下代码片段:
for(int i=0; i<Request.Cookies.Count; i++)
{
aCookie = Request.Cookies[i];
output.Append("Name = " + aCookie.Name + "<br />");
if(aCookie.HasKeys)
{
for(int j=0; j<aCookie.Values.Count; j++)
{
subkeyName = Server.HtmlEncode(aCookie.Values.AllKeys[j]);
subkeyValue = Server.HtmlEncode(aCookie.Values[j]);
output.Append("Subkey name = " + subkeyName + "<br />");
output.Append("Subkey value = " + subkeyValue +
"<br /><br />");
}
}
else
{
output.Append("Value = " + Server.HtmlEncode(aCookie.Value) +
"<br /><br />");
}
}
检查输出变量以查看Value和SubKey值。
如果你想允许cookie到域(我想这是你想要实现的),你可以使用domain
属性来实现:
Response.Cookies["password"].Domain = "SolidDomain";