HttpContext.Current.User один и тот же на нескольких сайтах MVC, работающих локально - PullRequest
1 голос
/ 05 июля 2011

Я работаю в консалтинговой мастерской, где мы работаем на нескольких сайтах каждый день, большинство из которых работают на ASP.NET MVC 3. Мы запускаем эти сайты локально во время разработки с использованием IIS Express, поэтому мы видим что-то вроде "http://localhost:1234" за каждый сайт.

Мы используем проверку подлинности с помощью форм на всех этих сайтах, и мы видим что-то странное при переключении с одного сайта на другой. Когда я вошел на сайт A и начал просматривать сайт B, свойство HttpContext.Current.User при отладке сайта B имеет значение, которое мы установили для сайта A.

Это, кажется, происходит только на сайтах MVC. Когда я запускаю сайт WebForms на том же компьютере в IIS Express, HttpContext.Current.User соответствует объекту GenericPrincipal. Другими словами, все сайты Web Forms кажутся изолированными с точки зрения аутентификации. Чем отличается MVC, который заставляет эти сайты получать информацию об аутентификации друг друга?

1 Ответ

4 голосов
/ 05 июля 2011

Имя файла cookie аутентификации, вероятно, одинаково для всех сайтов, и если все они размещены в одном домене, этот файл cookie будет отправляться вместе с каждым запросом. По умолчанию имя файла cookie .ASPXAUTH. Таким образом, если вы прошли аутентификацию на Сайте A, вы будете автоматически аутентифицированы на Сайте B. Имя файла cookie определено в разделе forms в web.config:

<forms loginUrl="~/Account/LogOn" timeout="2880" name="someCookieName" />

Поэтому попробуйте указать другое имя файла cookie для аутентификации для своих сайтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...