C # разбора cookie получить ноль - PullRequest
1 голос
/ 22 июня 2011

Это мое значение 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");

в обоих случаях я получаю ноль. что здесь не так?

1 Ответ

1 голос
/ 22 июня 2011

Вы можете иметь файл 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 />");
    }
}

И проверьте выходную переменную, чтобы увидеть значение и значение SubKey.

Если вы хотите разрешить использование cookie в домене (я думаю, это то, чего вы пытаетесь достичь), вы можете сделать это, используя свойство domain:

Response.Cookies["password"].Domain = "SolidDomain";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...