To będzie krótkie, ale baaaardzo ważne :)
Jeżeli ustawiacie ADFS jako STS dla aplikacji napisanej w WebForms upewnijcie się, że macie odpowiedniej wielkości literki w URLu. Bo to, że WebForms spowoduje, że link http://test/app zostanie otwarty i url zmieniony na http://test/App (czyli routing jest case-insensitive) to nie oznacza, że przeglądarka wie o tym, że http://test/app to http://test/App – ba, powiem wam tak, nie wie o tym.
Czyli jak ADFS tworzy wam iframe by was wylogować z urlem http://test/app/?wa=wsignoutcleanup1.0 i ten iframe nawet wam wyświetli znaczek (obrazek), to nie znaczy, że zostaliście wylogowani z http://test/App :) ba, nawet na pewno nie, bo jak zobaczycie, to url przy otwieraniu http://test/app/?wa=wsignoutcleanup1.0 nie ulega zmianie na App, a to znaczy, że routing WebFormsowy nie został wykonany. Czyli, wylogowywujecie się z aplikacji której nie ma :)
Nie testowałem rozwiązania z URL re-write na małe literki, ale jeżeli query string params będą przekazywane to może i powinno to też zadziałać. Wiem jedno, spędziłem nad tym problemem 3 dni i gdyby nie jeden dev który zauważył, że:
- http://test/app/?wa=wsignoutcleanup1.0 nie działa
- http://test/App/?wa=wsignoutcleanup1.0 działa
w życiu pewnie sam bym do tego nie doszedł :)
Naprawa była prosta, w ADFS zmieniliśmy po prostu wielkość litery z a
na A
w url i wszystko działało :)