Проблема аутентификации форм при повторной записи URL

#asp.net #asp.net-mvc #authentication #iis-8

#asp.net #asp.net-mvc #аутентификация #iis-8

Вопрос:

Обновлено на основе моих текущих результатов:

Я использую проверку подлинности форм на веб-сайте, который работает asp.net 4.5 приложения в IIS 8.5.

Кроме того, я использую URLRewrite, который перенаправляет два приложения на другой сервер после проверки подлинности форм.

Одним из приложений является веб-приложение на основе формы aspx, которое работает нормально. Другое — приложение MVC 5 — это не работает. Я продолжаю получать ошибку 401 в журнале IIS и следующий текст в журнале событий приложения:

Не удалось выполнить проверку подлинности форм для запроса. Причина: предоставленный билет был недействительным.

Каждое приложение имеет свой собственный уникальный пул приложений, оба имеют версию 4.0, но один пул приложений классический, а другой интегрированный. Тот, который интегрирован, — это тот, который терпит неудачу.

Есть мысли?

Комментарии:

1. Маловероятно, что это будет иметь какое-либо отношение к разрядности. Платформа .net framework устанавливает как 32, так и 64-разрядные версии платформы (включая модуль проверки подлинности forms). Я думаю, вы в погоне за диким гусем

2. ASP.NET разрядность веб-приложения определяется разрядностью пула приложений, а не тем, что вы указываете в файлах проекта. Отредактируйте свой вопрос, чтобы включить фактическую ошибку в журнал событий, и тогда вокруг нее может быть какое-то обсуждение.

3. Обязательно очищайте кеш браузера между попытками доступа к этому сайту. Также найдите конфигурацию machineKey в файле Web.config приложения, чтобы убедиться, что он не использует собственную пользовательскую конфигурацию.

4. Полагаю, я решил это: проблема была в файлах web.config. Я изменил значение элемента targetFramework как в теге компиляции, так и в теге HttpRuntime в сбойном приложении, чтобы оно соответствовало тому приложению, которое установило файл cookie FormsAuthentication. Вероятно, можно было бы изменить значения machineKey в другом. Файлы конфигурации NET runtime, чтобы убедиться, что все они также согласованы, но это казалось более простым (если не более правильным) решением. Я искренне надеюсь, что это кому-то поможет, потому что мне было трудно разобраться!