Я пытаюсь настроить приложение для использования федеративных входов в систему. NET Core. Я вижу, что мое клиентское приложение отправляет сообщения wsignin1.0 и wsignout1.0 федеративному провайдеру. Однако, когда я пытаюсь отправить wsignoutcleanup1.0 в мое клиентское приложение, ничего не происходит. Как федеративные клиенты получают сообщения wsignoutcleanup для очистки своего состояния сеанса?
Вот моя конфигурация wsfederation для моего клиента:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddAuthentication(sharedOptions =>
{
sharedOptions.DefaultChallengeScheme = WsFederationDefaults.AuthenticationScheme;
sharedOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
}
).AddCookie(options =>
{
options.Cookie.Name = "TestStsAuth1";
}).AddWsFederation(options =>
{
WsFederationConfiguration configuration = new WsFederationConfiguration();
configuration.Issuer = "http://localhost/STSSpike2/V1";
configuration.TokenEndpoint = "http://localhost/STSSpike/V1";
options.Configuration = configuration;
options.Wtrealm = "http://localhost/STSAwareApp2/Test";
options.SecurityTokenHandlers.Add(new FakeTokenValidator());
options.SkipUnrecognizedRequests = true;
options.RemoteSignOutPath = "/Logout";
});
services.AddLogging(
builder =>
{
builder.AddFilter("Microsoft", LogLevel.Trace)
.AddFilter("System", LogLevel.Trace)
.AddConsole();
});
}
Я попытался отправить GET-запросы в / Logout с wa = wsignoutcleanup1.0, но я, кажется, не вижу Cook ie для очистки сеанса, и при этом я не вижу события WsFederataion.OnRemoteSignOut, которое запускается. Какие-нибудь указатели на то, что я пропускаю?