0

DefaultTokenReplayCacheをサブクラス化し、MVCアプリケーションで機能させることができました。これにより、Fiddlerによって、または戻る矢印を押して再送信することにより、IDPからRPに再生されるトークンが正しく検出されます。

私の意図は、FedAuth Cookieが存在し、そのセッションがすでにサインアウトしている場合に、キャッシュされたリプレイを防ぐことです。

例えば:

DefaultTokenReplayCacheは、この応答が再生されるたびに正しく判断します。

POST http://127.0.0.1:2600/Account/SignIn HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; MS-RTC EA 2)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Content-Length: 6679
Host: 127.0.0.1:2600
Pragma: no-cache

wa=wsignin1.0&wresult=%3Ct%3ARequest ..... 

ただし、サインアウトすると、次のセッションを再生できます

GET http://127.0.0.1:2600/ HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; MS-RTC EA 2)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: 127.0.0.1:2600
Pragma: no-cache
Cookie: FedAuth=77u/PD94bWwgd......

質問

セッションがサインアウトされた後、WIFが特定のFedAuth Cookieを許可しないようにするにはどうすればよいですか?

4

2 に答える 2

0

サインアウトはどうですか?通常、 FederatedAuthentication.WSFederationAuthenticationModule.SignOutを呼び出す必要があります。

これにより、すべての FedAuth Cookie が消去されます。これは、アプリで設定した可能性のある他の Cookie を消去しないことに注意してください。

于 2011-10-31T17:32:24.613 に答える