1

Windows Identity Foundation を使用する ASP.net アプリケーションを作成しています。私の ASP.net アプリケーションは、セキュリティ トークン サービスへのパッシブ リダイレクトによるクレーム ベース認証を使用しています。これは、ユーザーがアプリケーションにアクセスすると、自動的に Security Token Service にリダイレクトされ、アプリケーションに対してユーザーを識別するセキュリティ トークンを受け取ることを意味します。

ASP.net では、セキュリティ トークンは Cookie として保存されます。

ユーザーがアプリケーションでクリックして Cookie を削除し、それらを Security Token Service にリダイレクトして新しいトークンを取得できるようにしたいと考えています。つまり、ログアウトして別のユーザーとしてログインしやすくします。コードでトークンを含む Cookie を削除しようとしましたが、何とか持続します。

ユーザーが再度ログインして新しいトークンを取得できるように、トークンを削除するにはどうすればよいですか?

4

2 に答える 2

5

解決策を見つけました。簡潔に言えば:

   Dim smartWsFederationAuthenticationModule As  _
        Microsoft.IdentityModel.Web.WSFederationAuthenticationModule = _
        HttpContext.Current.ApplicationInstance.Modules("WSFederationAuthenticationModule")
    smartWsFederationAuthenticationModule.SignOut(True)

詳細については、こちらをご覧ください: http://garrettvlieger.com/blog/2010/03/refreshing-claims-in-a-wif-claims-aware-application/

また、WIF フレームワークの他の部分へのハンドルを取得できることもわかりました。それは間違いなく読む価値があります。

于 2010-04-19T19:08:02.020 に答える
0

クッキーは少し奇妙です。それらはブラウザによって管理されており、それらを削除する「方法」はありません。サーバー側の Request オブジェクトまたは Response オブジェクトからそれらを削除するだけでは、クライアント側のブラウザーからそれらが削除されません。

Cookie を「削除」するには、有効期限を過去に設定する必要があります。

参照: http://msdn.microsoft.com/en-us/library/ms178195.aspx

于 2010-03-15T19:23:05.473 に答える