Я использую WIF. Я разработал STS, который хорошо работает. Сама STS выполняет логин (в основном, используя предварительно свернутый код, который поставляется с Microsoft MVC). До сих пор у нас есть две полагающиеся стороны, которые могут использовать зашифрованный файл cookie. Вот что: поскольку весь этот код находится в STS, я хочу, чтобы STS также выполнял другие функции, такие как регистрация новых пользователей, изменение паролей и т. Д. Все, что было до проката. Однако после входа в систему любой запрос на маршрут в STS (скажем, учетная запись/регистр или даже учетная запись/вход в систему) сбой «Ключ недействителен для использования в указанном состоянии». Я потратил немало времени, и у меня есть два рабочих RP для копирования, пытаясь настроить эту вещь, чтобы дешифровать файл cookie. Я заключаю, что это не настройка. Я думаю, возможно, STS будет отвечать только на запросы идентификации. Как ни странно, все это работает на IIS express (на моем ноутбуке), но дает вышеприведенную ошибку в IIS. Первой мыслью тогда является защита сертификатов. Однако, если это неверно сконфигурировано, вы даже не можете войти в систему, поэтому я знаю, что STS может получить доступ к сертификату. Извините, все немного расплывчато, но я надеюсь, что у кого-то есть хорошие идеи или знания домена. Большое спасибоWindows Identity Foundation STS: другие типы запросов?
ответ
вы можете гарантировать, WIF использует раздельные куки для ГНС и каждый тр, называя их по-разному в настройках для каждого сайта (т.е. stsauth, rp1auth, rp2auth) Вы можете настроить имена явно на объекте ChunkedCookiedHandler на каждом сайте во время запуска приложения.
var chunkedCookieHandler = new ChunkedCookieHandler {
RequireSsl = false,
Name = "stsauth",
Domain = domain,
PersistentSessionLifetime = new TimeSpan(0, 0, 30, 0)};
См here для полного кода, чтобы сделать это:
Стандарт STS касается только вывесок и вывесок. Однако, как многие узнают, есть много других потоков, которые касаются «пользовательской» вещи. Смена пароля, потерянный пароль, изменение электронной почты (на самом деле изменение любой претензии), обновление пароля, попытка входа в систему, регистрация, регистрация в Facebook, ... Нет стандартного способа борьбы с ними. Мы решили это, расширив «действия», которые могут быть отправлены на наш STS. Вместо signin1.0 и signout 1.0 мы разрешаем полный набор из 20 действий, которые будут напрямую задействованы нашими RP.
Ваш STS должен иметь свои собственные файлы cookie. Он никогда не должен делиться файлом cookie с одной из полагающихся сторон. Таким образом, у вас обычно не может быть проблемы с расшифровкой или шифрованием ключей.
Спасибо, Вилли! Я рассматривал cookie как находящийся на сеансе, а не в данном приложении. Как у STS есть свои куки? Я перенаправляюсь к STS и до того, как какой-либо из его кодов получает контроль, он выдает неверную ошибку ключа. Не знаете, как спросить или сказать, чтобы использовать какой-то другой файл cookie, чем сеанс WIF. Благодаря- – rdgWarren