私は MVC4 c# を使用しており、自家製のセキュリティ トークン サービス (STS) を組み込んでいます。ユーザーが実際の Web アドレスを呼び出すと、STS ログインに受動的にリダイレクトされます。認証に成功すると、目的の場所にリダイレクトされます。これは、sts へのリダイレクトの URL ですべて urlencoded されています。
ログアウト時に、次を呼び出します。
this.Session.Abandon();
this.Response.Cache.SetCacheability(HttpCacheability.NoCache);
this.Response.ClearContent();
// expires the claims
FederatedAuthentication.SessionAuthenticationModule.SignOut();
FederatedAuthentication.SessionAuthenticationModule.CookieHandler.Delete();
WSFederationAuthenticationModule authModule = FederatedAuthentication.WSFederationAuthenticationModule
Response.Redirect(WSFederationAuthenticationModule.GetFederationPassiveSignOutUrl(authModule.Issuer, authModule.Realm, null));
私たちのアプリのデスクトップ バージョンでは、すべてがうまく機能しているようです。ユーザーは STS ログイン ページに戻り、URL には wlogin1 (および他の多くのもの) が表示され、ユーザーは問題なく再度ログインできます。URL は、最初に STS にリダイレクトされたときとまったく同じです。完璧です、これが私が欲しいものです。
ちなみに、まったく同じドメイン/コントローラー/メソッドを使用するモバイルでは、jQueryMobile と異なる部分ビューのみを使用すると、ログアウトが機能しているように見え、ユーザーは STS ログインに戻ります。ただし、今回の URL には、ログアウトに使用されたモバイル actionLink から実際に呼び出されたドメイン/コントローラー/メソッドのみが表示されます。ユーザーが再度ログインしようとすると、このリンクは sts ログインに適していないため、ログインは常に失敗します。
これを修正する方法についての考え、または何が問題なのですか? 説明が必要な場合はお知らせください。ありがとう!