2011-10-29 37 views
0

我已经能够继承DefaultTokenReplayCache并使其在我的MVC应用程序中工作。这可以正确检测由IDid向Fiddler重播的令牌,或者按下后退箭头并重新提交。即使在WIF中实现DefaultTokenReplayCache之后,令牌重播仍然是可能的

我现在的目的是在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?

回答

0

您如何退出?您通常需要调用FederatedAuthentication.WSFederationAuthenticationModule.SignOut

,将清除所有FedAuth饼干。请注意,这不会清除您在应用中设置的任何其他Cookie。

+1

我做的事情完全按照你的描述,是的,饼干被清除,但它是可以按后退箭头在我的亭浏览器(或干脆使用Fiddler重播)并且签出的会话再次变为活动/有效。我认为问题在于我需要验证活动的FedAuth cookie并禁止“关闭”会话 – LamonteCristo

0

您需要将tokenReplayDetection添加到依赖方的identityConfiguration元素中。

<system.identityModel> 
    <identityConfiguration ...> 
     <tokenReplayDetection enabled="true"/> 
     ... 

-Atli

相关问题