2014-05-22 62 views
0

我正在使用WIF 4.0構建聲明感知RP和STS。我現在遇到的問題是,我已將多個服務器託管在我的生產環境中。出於某種原因,我得到了可怕的在負載平衡環境中部署WIF 4.0問題

[CryptographicException: Key not valid for use in specified state. ] 

用戶空閒一段時間後出現錯誤。我想知道是否有人有這方面的經驗?將使用機器密鑰幫助?在重置服務器上的IIS時,我也看到這個錯誤。我已經將LoadUserProfile設置爲true。

回答

0

我想你需要在你的web.config中指定類似的東西。另外,您需要在所有服務器上設置相同的機器密鑰。

<system.identityModel> 
    <identityConfiguration> 
    <securityTokenHandlers> 
       <remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    </securityTokenHandlers> 
    </identityConfiguration> 
</system.identityModel> 
+0

是的,不幸的是,該選項僅適用於WIF 4.5。 – shenn

+0

你會變得很厲害。另一方面,相同的方法將適用於舊版本。底線是你需要用一個使用固定密鑰的會話替換sessionsecuritytokenhandler。自己寫這個並不難;特別是如果您可以查看WIF 4.5處理程序的代碼。 –