У меня есть простое основное приложение dotnet, использующее identitysever4 для аутентификации. Логин работает нормально. Выход из системы работает частично, пока я не попытаюсь добавить SignedOutCallbackPath.
Я добавил в домашний контроллер метод logoutcomplete. Я могу вызвать этот метод в браузере так: http://localhost:port/home/logoutcomplete. Затем я добавляю
options.SignedOutCallbackPath = signatureOutCallbackPath;
в приложение, а затем запустите приложение. затем попытайтесь вернуться http://localhost:port/home/logoutcomplete. Возвращает 200, но нет просмотра. Он также не входит в метод контроллера.
Настроить сервисы так:
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie("Cookies")
.AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options =>
{
options.SaveTokens = true;
options.ClientId = clientId;
options.RequireHttpsMetadata = false;
options.Authority = metadataAddress;
//options.SignedOutCallbackPath = signedOutCallbackPath;
//options.SignedOutRedirectUri = Wtrealm + postLogoutUrl;
// Wtrealm is the app's identifier in the Active Directory instance.
// For ADFS, use the relying party's identifier, its WS-Federation Passive protocol URL:
//options.Wtrealm = "https://localhost:44321/";
options.Events.OnRedirectToIdentityProvider = onRedirectToIdentityProvider;
//options.Events.OnRedirectToIdentityProviderForSignOut = onRedirectToIdentityProviderForSignOut;
options.Events.OnRemoteFailure = remoteAuthFail;
options.Scope.Add("openid");
options.Scope.Add("profile");
options.Scope.Add("email");
//options.Scope.Add("role");
}); Services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
это метод настройки
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
Редактировать 1:
Да, у меня есть перенаправление после выхода из системы, настроенное на контроллер, о котором я упоминал. Вот общий вид вкладки сети в chrome после выполнения шага 1
- Я нажимаю на ссылку выхода из системы в клиентском приложении.
- Контроллер выхода обрабатывает это.
- Он выводит меня из приложения и перенаправляет меня на процесс выхода из ID сервера.
- Идентификация сервера называется endsesssion. Он перенаправляет на учетную запись сервера ID / метод выхода из системы.
- Возвращает 302 на мою страницу postlogouturl в моем клиенте. Вот где это должно остановиться, и я был бы очень счастлив.
- Но ВМЕСТО я получаю 302 от этого места назначения после выхода из журнала.
и он отправляет меня на домашнюю страницу клиента. у которого есть проблема в коде для ID сервера для входа в систему.
Har файл слишком для публикации, но вот выборочная версия вкладки сети в хром
Звоните 1:
https://localhost:44321/Account/Logout", {"credentials": "include", "headers": {"accept": "text / html, application / xhtml + xml, application / xml; q = 0,9, image / webp, image / apng , / ; д = 0,8" , "Accept-Language": "EN-US, ан; д = 0,9", "кэш-контроль": "нет кэша", "прагма": "нет -cache " "обновить-небезопасные-запросов": "1"}, "реферер":" https://localhost:44321/","referrerPolicy":"no-referrer-when-downgrade","body":null,"method":"GET","mode":"cors"}
Звоните 2:
https://localhost:5001/connect/endsession?post_logout_redirect_uri=https%3A%2F%2Flocalhost%3A44321%2FAccount%2FCompleteSignout&id_token_hint=eyJhbGciOiJSUzI1NiIsImtpZCI6IkZGQzU0RUYzRjlCODYzMUVDQTMyQThERUZDMjM1QjJFMTAzMTIwMjgiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJfOFZPOF9tNFl4N0tNcWplX0NOYkxoQXhJQ2cifQ.eyJuYmYiOjE1NTE5Njg4OTgsImV4cCI6MTU1MTk2OTE5OCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMSIsImF1ZCI6Ijc3NmFlNmMzLWMyNzMtNGU4Yy05ZjlhLTE4ZTM5NDA1Y2M3ZCIsIm5vbmNlIjoiNjM2ODc1NjU2ODI5Mzk3NTAzLlpUTTBNemt5TVdFdE1tRTVNQzAwT1dGa0xXSXhNVFF0WldZMU9EYzVPVEl5WWpreE5qZGhPR1l6TVRNdE9UZzROUzAwTnpZekxXRXlNVFl0T0RObE9EVXdaalZpWlRreiIsImlhdCI6MTU1MTk2ODg5OCwiYXRfaGFzaCI6IkJOSWdjRjYwUTd3RUpUbE1tNzd5amciLCJzaWQiOiI3OGY3NmZiODg2MjNiN2M3MDU0N2FlMTkyNmFiMjEzMCIsInN1YiI6ImU4ODdjMDlkLTZjMWItNDNiYS1iN2ZhLTZkZjVkZjZmYjg2YiIsImF1dGhfdGltZSI6MTU1MTk2ODg5MiwiaWRwIjoibG9jYWwiLCJhbXIiOlsicHdkIl19.rykZoW4oBhC8FB-6plAu8tlnsi9kqp4Ij7aSc3GahSngXQZTFR6thStpnQDB5AGvr3mTg9IYkHmd_H5Q6KpMXLCvP8icfIoPo0F82Hy5m9R1bHCr-2j3nz3-KKtD63-TAWJdH291v9ob5u2LDxeV3kax0oI-2_jlQmaR4FvKoEIOLTv3O07gJ7gGOqTMUXyxgPe8leTKVMsibG4LyIIeM0CbSSHA7cuEOu8VaCHLHh4mewPprmvcAXqRtjksT5SdlcuySt8Jm9j0u03qQV9XcXaf4XVE8vMdBgwP2dCjz4F7CYwJNRlZIGiTkVbFy1pRSJx9YNHyM-zMe3jvk9a11w&state=CfDJ8IkQZhXHRoVImqJIMbA3AwywYZQb1BcuwxT_DXXCkTLUmtShNjh8kb-IwB-Xdt3k-GOwwhKn2NFKH0e9YNp7QQBa65K6buhh-2ndhP6RsoIzOokn2jibJVRALgCTgGDHS_ubXnpUUGQlteboyzGPAWHQIny6XUv6jPS-BLpd6nuU&x-client-SKU=ID_NETSTANDARD2_0&x-client-ver=5.3.0.0", {"credentials": "include", "headers": {"accept": "text / html, application / xhtml + xml, application / xml; q = 0,9, image / webp, image / apng , / * тысяча сорок девять *; д = 0,8" , "Accept-Language": "EN-US, ан; д = 0,9", "кэш-контроль": "нет кэша", "прагма": "нет -cache " "обновить-небезопасные-запросов": "1"}, "реферер":" https://localhost:44321/","referrerPolicy":"no-referrer-when-downgrade","body":null,"method":"GET","mode":"cors"}
Звоните 3:
https://localhost:5001/Account/Logout?logoutId=CfDJ8IAxOFzkPDhIhK9DJ2tWINzkHt_UeEMkRoNAXbQ6CosU_t3gC5V0MujllavlrQsVycb_3pHr62VvRY1EQDgy-aZ7bqcwmgETDaB3Zp1RXLmb15CG-S8WN8EBThjPZQ5-4QqSWgXi7G44Bvp2hW1vlmfLtcyTQ-U2QbPpQOsoccnXqUM4JfI41fmIUlIC2DHCyLYAbHsTwvf1g_twwr0Ed914NInq-35IoLEWjIxoDNeFfSJJoxasEl9klvK_1EM_hz2GTLMRP5s46jtuMSoebvG_EVwO9hFxRGNg2kS8llFqx2zjSjFqeqowTPv7yK3im7IHFVqCJWVvyOHXH7XKCddUSfH5SNQ1hf6I3Ag96G7BRgyWwFM_c_t560V5ihQXkQ3HT0JIyF5rbh5tFC370XtqPFzz5jFB7XOe6YveXnCCk3EPpRS9Ll7DCMCABnd5uLmh9i0WtZlVg_LA9KOXcy1x97VUqiMDxqW8h8ahM3YKz0UCnvvyGGM9TV0Cv-7RCqcEo9sJyDSYjQzCV6ZqyXylaaqftAyCTKaBlC3umI9Y-_CQw_7U86uMu8c7zvxiwcGj4ixJcKHVGmkV9x0G_F_DmrcBC1GJRlJR6jc-VBecK_PA24UiSk2Jjpgpa1CfZqXHAkEVNILzgKh2gGJU4gvqrTgpxGoQj5Hnz2Vl6Tadin6_w6RLRYZIz9Yd1F45Apkonntl8DwnrY6xzqLRFX3wQ7rkxQe_xWVZq-5oQCJ1QQFEHtVqtdvVHkDZFLVJXmQSF-S8yyxZn8WVE257iQCNHeVBSV8IjNT4HRHnGnsR15vMBpmOt7Co2UsHZPMY9dsajHfJtDrL9W4k4zIrKP7wScmdb9i8cdxZ8hjIr0Dfs_ZTswCuxgP-jZroKBCCOhJ9_k4K1lDYoAAKr09etztiwtFqMnq96O8-GtQYKVhZL9bYGSbVcLsm1ko_144vf0h5LdlkCcWUoP0fh0lOxwn80s9Gmtrend9jmuXDKZ_P", {"credentials": "include", "headers": {"accept": "text / html, application / xhtml + xml, application / xml; q = 0,9, image / webp, image / apng , * тысяча пятьдесят семь * / ; д = 0,8" , "Accept-Language": "EN-US, ан; д = 0,9", "кэш-контроль": "нет кэша", "прагма": "нет -cache " "обновить-небезопасные-запросов": "1"}, "реферер":" https://localhost:44321/","referrerPolicy":"no-referrer-when-downgrade","body":null,"method":"GET","mode":"cors"}
Звоните 4:
https://localhost:44321/Account/CompleteSignout?state=CfDJ8IkQZhXHRoVImqJIMbA3AwywYZQb1BcuwxT_DXXCkTLUmtShNjh8kb-IwB-Xdt3k-GOwwhKn2NFKH0e9YNp7QQBa65K6buhh-2ndhP6RsoIzOokn2jibJVRALgCTgGDHS_ubXnpUUGQlteboyzGPAWHQIny6XUv6jPS-BLpd6nuU", {"credentials": "include", "headers": {"accept": "text / html, application / xhtml + xml, application / xml; q = 0,9, image / webp, image / apng / ; д = 0,8" , "Accept-Language": "EN-US, ан; д = 0,9", "кэш-контроль": "нет кэша", "прагма": "нет -cache " "обновить-небезопасные-запросов": "1"}, "реферер":" https://localhost:44321/","referrerPolicy":"no-referrer-when-downgrade","body":null,"method":"GET","mode":"cors"}
Звоните 5:
https://localhost:44321/", {"credentials": "include", "headers": {"accept": "text / html, application / xhtml + xml, application / xml; q = 0,9, image / webp, image / apng , / ; д = 0,8" , "Accept-Language": "EN-US, ан; д = 0,9", "кэш-контроль": "нет кэша", "прагма": "нет -cache " "обновить-небезопасные-запросов": "1"}, "реферер":" https://localhost:44321/","referrerPolicy":"no-referrer-when-downgrade","body":null,"method":"GET","mode":"cors"}
Звоните 6:
https://localhost:5001/connect/authorize?client_id=776ae6c3-c273-4e8c-9f9a-18e39405cc7d&redirect_uri=https%3A%2F%2Flocalhost%3A44321%2Fsignin-oidc&response_type=code%20id_token&scope=openid%20profile%20email%20offline_access&response_mode=form_post&nonce=636875657052545628.OTAwYzMwMWYtNzRmMi00YzlhLWFhNzgtMjRmZjFkOTgxYzY3YTBiMzcxMWUtM2M5Mi00YWE1LTkwNDgtNjIwODZjNDMxMDhk&login_hint=user.name&state=CfDJ8IkQZhXHRoVImqJIMbA3AwzSzO3TsIn08Q4MFv1bS3bVSAI8e35pZwTGfspMlXdIf3-lejQgu5bHYbbBYbPaR7S_20VO-GTp97rGCnsGeeQEuOqEGpYSA6C4LUeGCEYPV0R113XvY6qxcupAklxj_SVSwR3YWXKl2b-vwpkB45q8txV0TOc8LMeKbajQYB6jzQI5wI6b_zqRaAb0NHLRc4pk6fdx9PyVDouuq8mtfhKGaF1R0bV5iY1v8jkF4MEspx3xmL1Z78ik4YzRv1cgT52OvUvHgrnq9XgGfB5SXwI_e16CkuNZEf2ltVH5ifK5cA&x-client-SKU=ID_NETSTANDARD2_0&x-client-ver=5.3.0.0", {"credentials": "include", "headers": {"accept": "text / html, application / xhtml + xml, application / xml; q = 0,9, image / webp, image / apng * один тысяча восемьдесят четыре * / * 1 085 *; д = 0,8" , "Accept-Language": "EN-US, ан; д = 0,9", "кэш-контроль": "нет кэша", "прагма": "нет -cache " "обновить-небезопасные-запросов": "1"}, "реферер":" https://localhost:44321/","referrerPolicy":"no-referrer-when-downgrade","body":null,"method":"GET","mode":"cors"}
Звоните 7:
https://localhost:5001/Account/Login?ReturnUrl=%2Fconnect%2Fauthorize%2Fcallback%3Fclient_id%3D776ae6c3-c273-4e8c-9f9a-18e39405cc7d%26redirect_uri%3Dhttps%253A%252F%252Flocalhost%253A44321%252Fsignin-oidc%26response_type%3Dcode%2520id_token%26scope%3Dopenid%2520profile%2520email%2520offline_access%26response_mode%3Dform_post%26nonce%3D636875657052545628.OTAwYzMwMWYtNzRmMi00YzlhLWFhNzgtMjRmZjFkOTgxYzY3YTBiMzcxMWUtM2M5Mi00YWE1LTkwNDgtNjIwODZjNDMxMDhk%26login_hint%3Duser.name%26state%3DCfDJ8IkQZhXHRoVImqJIMbA3AwzSzO3TsIn08Q4MFv1bS3bVSAI8e35pZwTGfspMlXdIf3-lejQgu5bHYbbBYbPaR7S_20VO-GTp97rGCnsGeeQEuOqEGpYSA6C4LUeGCEYPV0R113XvY6qxcupAklxj_SVSwR3YWXKl2b-vwpkB45q8txV0TOc8LMeKbajQYB6jzQI5wI6b_zqRaAb0NHLRc4pk6fdx9PyVDouuq8mtfhKGaF1R0bV5iY1v8jkF4MEspx3xmL1Z78ik4YzRv1cgT52OvUvHgrnq9XgGfB5SXwI_e16CkuNZEf2ltVH5ifK5cA%26x-client-SKU%3DID_NETSTANDARD2_0%26x-client-ver%3D5.3.0.0", {"credentials": "include", "headers": {"accept": "text / html, application / xhtml + xml, application / xml; q = 0,9, image / webp, image / apng / * тысяча девяносто-четырь *; д = 0,8" , "Accept-Language": "EN-US, ан; д = 0,9", "кэш-контроль": "нет кэша", "прагма": "нет -cache " "обновить-небезопасные-запросов": "1"}, "реферер":" https://localhost:44321/","referrerPolicy":"no-referrer-when-downgrade","body":null,"method":"GET","mode":"cors"}
Звоните 8,9,10,11: (все вызовы css и js бесполезны для целей) https://localhost:5001/lib/bootstrap/css/bootstrap.css", {"credentials": "omit", "referrerPolicy": "no-referrer", "body": null, "method": "GET", "mode": "cors"} https://localhost:5001/css/site.css", {"credentials": "omit", "referrerPolicy": "no-referrer", "body": null, "method": "GET", "mode": "cors"} https://localhost:5001/icon.png",{"credentials": "omit", "referrerPolicy": "no-referrer", "body": null, "method": "GET", "mode": "cors"} https://localhost:5001/lib/jquery/jquery.js", {"credentials":" omit "," referrerPolicy ":" no-referrer "," body ": null," method ":" GET "," mode ":" cors "} https://localhost:5001/lib/bootstrap/js/bootstrap.js", {" credentials ":"опустить», "referrerPolicy": "нет-реферер", "тело": нулевой, "метод": "GET", "режим": "Корс"}