Я использовал веб-отладчик 'Fiddler', чтобы найти ответ на этот вопрос. Вот что происходит: предположим, что имя вашего приложения - SecureApp
, а имя вашего STS - SecurePortal
.
Первое, что происходит, когда вы указываете свой браузер на SecureApp
, это то, что он проверяет, аутентифицированы ли вы. Если это не так, вы сразу же будете перенаправлены на SecurePortal
со строкой запроса, указывающей, что вы входите в систему SecureApp
.
После входа в систему с помощью SecurePortal
платформа WIF создает HttpResponse
из SecurePortal
, который содержит некоторые «скрытые» поля HTML, содержащие значения, которые указывают, что вы успешно вошли в систему. Эти значения могут быть подписаны и / или зашифровано на основе настройки SecurePortal
. Наряду с этими значениями написан некоторый код Javascript, чтобы браузер отправлял значения в SecureApp
. Как только эти значения будут подтверждены SecureApp
, платформа запишет HttpResponse
с cookie-файлами, которые указывают, что вы вошли в систему. По моему опыту, имена файлов cookie начинаются с "FedAuth". Теперь вы можете получить доступ к страницам в SecureApp
.
Кроме того, я хотел бы отметить, что у платформы, похоже, есть какой-то способ предотвратить ручное удаление файлов cookie.
Я предлагаю вам использовать веб-отладчик и наблюдать, как этот процесс происходит самостоятельно, чтобы лучше понять.
Краткий ответ: токен сначала передается вашему браузеру как HttpResponse
в STS, а затем снова передается вашему браузеру в виде файла cookie в приложении.