1

WindowsIdentityFoundationを使用するプロジェクトに取り組んでいます。サインアウトソリューションをテストしているときに、次の呼び出し http:// rp /?wa = wsignoutcleanup1.0は、RP上のFedAuthCookieを削除しないことがわかりました。これにより、ユーザーはRPにサインインしたままになります。

この状況を改善するために、Global.asaxに次のコードを追加しました。

protected void Application_Start()
{
    FederatedAuthentication.WSFederationAuthenticationModule.SigningOut += new EventHandler<SigningOutEventArgs>(WSFederationAuthenticationModule_SigningOut);
}

void WSFederationAuthenticationModule_SigningOut(object sender, SigningOutEventArgs e)
{
    FederatedAuthentication.SessionAuthenticationModule.DeleteSessionTokenCookie();
}

しかし、WIFはこれを自動的に処理するべきではありませんか?それともこれがそれを行う方法ですか?

4

2 に答える 2

2

@Antonに同意します。WIFCookieで機能するはずです。ただし、自分のセッションはクリーンアップされません。

クリーンアップするものが追加されている場合は、追加の作業を行う必要があります。注意点は、セッションオブジェクトはどのWIFイベントハンドラーからも利用できないということです。したがって、たとえば、 WSFederationAuthenticationModuleSigningOutからSession.Abandon()を呼び出すことはできません。通常、最終的なクリーンアップのために別のページにリダイレクトします。この例はここにあります:http://claimsid.codeplex.com(サンプル#1)

于 2011-05-31T16:30:12.267 に答える
2

すべてのURL大文字小文字が一致していることを確認してください。IISのアプリケーション名、Webサイト名大文字小文字も、構成のURLと一致している必要があります。これを追跡するのに苦労しました。ここを参照してください:wasignoutcleanupの問題

于 2011-07-21T12:09:52.077 に答える