Обновление службы токенов безопасности с .Net 3.0/IIS7 до .Net 4.0/IIS 8

Я обновил проект .Net 3.0 до .Net 4.0. Для аутентификации входа в этот проект пользователь перенаправляется на STS (служба маркеров безопасности, также обновленная до .Net 4.0) с предыдущим URL-адресом. При входе в систему экземпляр STS аутентифицирует данные для входа и перенаправляет на указанный URL-адрес (обратно в мою систему). Эта STS является кодом клиента, и у меня нет к ней доступа.

В Visual Studio (начиная с 2010 г.) это работает нормально. Я запускаю сайт под Visual Studio Development Server и IIS Express без проблем (Windows 7/Windows Server 2012). Когда я запускаю это под локальным веб-сервером IIS 8, я теряю роли в токене. Это отлично работает в 7/7.5, но не в 8.

Мне интересно, не пропустил ли я что-то в своей конфигурации IIS 8?

var claimsIdentity = Thread.CurrentPrincipal.Identity as ClaimsIdentity;
IList<string> userRoles = claimsIdentity.GetRoles();

Я прикрепил результаты вышеизложенного к своему заголовку Http (те же роли, которые использует моя система) и вижу, что пользовательских ролей больше нет (список пуст). Но у моих ClaimsIdentity есть правильный пользователь.

Я был бы очень признателен за любые указатели.


person Dev    schedule 23.04.2014    source источник


Ответы (1)


Так что мне удалось заставить работать оригинальные установщики. У моего установщика была зависимость от «моего» старого .Net 3, поэтому раньше он не работал. Это находится в «редакторе условий запуска» в контекстном меню установщика, но вам также необходимо предварительное условие в свойствах, чтобы иметь .Net 4). После исправления установщика и его использования для настройки веб-сайта система правильно аутентифицируется. Это наводит меня на мысль, что, вероятно, проблема была в моих конфигурациях.

Что именно это было за свойство, я не могу сказать, так как сравнение web.configs имеет множество отличий. Почему этот IIS 7.5 работает, а web.config в IIS 8 — нет, мне непонятно (тот же web.config).

person Dev    schedule 14.05.2014