我有一個使用Windows Identity Foundation的聲明感知Web應用程序,一直運行良好,除了在一臺服務器上。我在事件日誌中看到下面顯示的錯誤消息。Microsoft.IdentityModel:密鑰在指定狀態下無效
Exception information:
Exception type: CryptographicException
Exception message: Key not valid for use in specified state.
at System.Security.Cryptography.ProtectedData.Unprotect(Byte[] encryptedData, Byte[] optionalEntropy, DataProtectionScope scope)
at Microsoft.IdentityModel.Web.ProtectedDataCookieTransform.Decode(Byte[] encoded)
此應用程序使用非常標準的WIF與ADFS v2實現。它沒有使用RsaEncryptionCookieTransform。我正在尋找有關如何診斷此問題的任何建議。我已嘗試到目前爲止的事情:
- 應用程序池使用的ASP.NET v4.0身份的「加載用戶配置文件」設置設置爲true。
- 我刪除了C:\ Users \ ASP.NET v4.0 \ AppData文件夾,並看到這已成功重新創建。
- 我檢查了證書私鑰的權限,這很好。我也嘗試禁用令牌加密,這沒有任何區別。
任何意見,將不勝感激。
謝謝。您確認我懷疑這是Cookie相關的,因此我做了大量的試驗和錯誤,並發現這是由另一個WIF安全的Web應用程序(在另一臺服務器上)創建了WIF cookie,其路徑顯然正試圖解密通過這個Web應用程序。我通過調整兩個應用程序使用的路徑值來解決這個問題。奇怪的是,我只在IE瀏覽器中看到這個錯誤,而不是Firefox/Chrome瀏覽器。我將不得不花更多時間來更好地理解這個問題。 –
我遇到了同樣的事情。很高興你能解決問題。我不知道爲什麼你只能在IE中看到這個,但改變cookie路徑應該是修復。 –
我在意外刪除本地網站後遇到同樣的問題。刪除wif和asp.net cookies的確有竅門。 –