Я обновил проект .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 есть правильный пользователь.
Я был бы очень признателен за любые указатели.