Настройка:
Две машины W2K3 в домене, на которых установлен IPv6.Приложение находится на компьютере № 1.
Что работает с IE8:
Машина # 2 может войти в приложение, используя адрес IPv4 (http://192.168. .. / app )
Машина # 2 может войти в приложение, используя имя компьютера (http://machine1name/app) Машина # 1 может войти в приложение, используя адрес IPv4, имя компьютера и localhost. Машина # 1 может войти в приложение, используя локальный адрес IPv6(без идентификатора области).
Машина # 1 может войти в приложение, используя сетевой адрес IPv6 (без идентификатора области).
Что не работает с IE8, НО работает с Firefox:
Машина # 2 не может войти в приложение, используя сетевой IPv6-адрес машины # 1 (с идентификатором области действия).
ОРИГИНАЛЬНАЯ ПРОБЛЕМА : Я пытался сузить проблему. Я могу открыть страницу входа и ввести свои учетные данные. В коде я проверяю Active Directory для аутентификации, и пользователь действительно проходит аутентификацию. Однако,HttpContext.Current.User.Identity
никогда не устанавливается. Он должен быть установлен, когда я вызываю RedirectFromLoginPage(username)
, и это когда машина № 2 использует IPv4 для доступа кприложениеОднако когда я использую адрес IPv6, HttpContext.Current.User.Identity
всегда пусто.
Аутентификация и приложение работают нормально при использовании IPv4, поэтому я не думаю, что это проблема кода, но не уверен?Или есть какие-то настройки сети / IE, которые мне нужно настроить?
EDIT : Firefox с IPv6 и IE8 с IPv4 не имеют проблем при создании файла cookie аутентификации.По какой-то причине IE8 с IPv6 не может создать cookie, следовательно, проблема с RedirectFromLoginPage, которая должна создавать cookie.
EDIT 2 : Кажется, проблема в %
в IPv6-адресе при использовании IE [т.е.идентификатор области видимости.Например, в Firefox у вас может быть %
в адресе без проблем.В IE, если вы обращаетесь к приложению локально, используя IPv6 (локальный или сетевой IP), вы можете не указывать идентификатор области.Однако при доступе к приложению на сетевом компьютере вам нужен идентификатор области.И поскольку вам нужно кодировать %
с помощью %25
, вот в чем проблема.
[ps.Я знаю, этот вопрос имеет похожее название, но это не та же проблема.]