Почему файл cookie для проверки подлинности с помощью форм ASP.NET по умолчанию имеет начальный период в имени по умолчанию => ".ASPXAUTH" - PullRequest
16 голосов
/ 21 марта 2011

по умолчанию Файл cookie для проверки подлинности с помощью ASP.NET Forms устанавливает его имя как " .ASPXAUTH " .Обратите внимание, что первый символ - это точка ?Есть ли для этого особая причина?Например, влияет ли это на доменные имена или субдомены целевого домена.

Или это просто случайная вещь, которую придумал разработчик MS (возможно, чтобы помочь упорядочить файлы cookie, когда онибыли отладки или что-то в этом роде ... как текст с точками в списке перед другими строками)?

Ответы [ 3 ]

11 голосов
/ 04 ноября 2011

Файл cookie в том же файле не является обязательным и просто снижает вероятность того, что вы перезапишете другой файл cookie, который может быть установлен вашим кодом. Требование к двум точкам относится исключительно к имени домена.

0 голосов
/ 22 марта 2011

Мне не удалось найти требование «двух точек», о котором говорил sajoshi, но я нашел его в спецификации HTTP rfc2109.

Domain = domain Необязательно.Атрибут Домен указывает домен, для которого действителен файл cookie.Явно указанный домен всегда должен начинаться с точки.

http://www.w3.org/Protocols/rfc2109/rfc2109

Этот раздел имеет вид 4.2.2 Синтаксис Set-Cookie .Я не знал, что перед постом Саджоши вообще было определенное требование, поэтому я посмотрел его, но, похоже, он был наполовину прав.Если кто-то читает это ближе и может указать на то, что я пропустил, пожалуйста, сделайте.

Обновление

Я сделал обнаружил в разделе 4.3.3, что

Хост-запрос - это полное доменное имя (не IP-адрес) иимеет форму HD, где D - это значение атрибута домена, а H - строка, содержащая одну или несколько точек.

(полное доменное имя - полное доменное имя)

Набор файлов cookie от узла-хоста yxfoo.com для домена = .foo.com будет отклонен, поскольку H - это yx и содержит точку

и

* 1031.*

Set-Cookie от request-host x.foo.com для домена = .foo.com будет принят.

Таким образом, похоже, что для домена Cookie потребуется как минимум две точкиесли бы оно основывало свое имя на доменном имени.Однако файл cookie для проверки подлинности aspnet этого не делает, поэтому для него требуется только одна точка.

0 голосов
/ 21 марта 2011

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

Это приводит к неудобствам, если во время разработки вы хотите поделиться файлами cookie между http://site1.localhost/ и http://site2.localhost/.. Чтобы преодолеть это, вы можете сопоставить site1.localhost.dev и site2.localhost.dev с 127.0. 0.1 в файле хоста, а затем установите домен на .localhost.dev

Надеюсь, это поможет ...

...