Tôi có một ứng dụng web nhận thức được yêu cầu sử dụng Windows Identity Foundation đã hoạt động tốt, ngoại trừ trên một máy chủ. Tôi thấy thông báo lỗi được hiển thị bên dưới trong nhật ký sự kiện.Microsoft.IdentityModel: Khóa không hợp lệ để sử dụng ở trạng thái được chỉ định
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)
Ứng dụng này đang sử dụng triển khai rất chuẩn của WIF với ADFS v2. Nó không sử dụng RsaEncryptionCookieTransform. Tôi đang tìm bất kỳ đề xuất nào về cách chẩn đoán điều này. Những điều tôi đã thử cho đến thời điểm này:
- Hồ bơi ứng dụng đang sử dụng bản sắc ASP.NET v4.0 có cài đặt "Tải hồ sơ người dùng" được đặt thành true.
- Tôi đã xóa thư mục C: \ Users \ ASP.NET v4.0 \ AppData và thấy điều này đã được tạo lại thành công.
- Tôi đã kiểm tra quyền trên khóa cá nhân chứng chỉ, điều này rất tốt. Tôi cũng đã thử vô hiệu hóa mã hóa mã thông báo mà không tạo ra bất kỳ sự khác biệt nào.
Mọi lời khuyên sẽ được đánh giá cao.
Cảm ơn. Bạn đã xác nhận sự nghi ngờ của tôi rằng đây là cookie liên quan nên tôi đã làm rất nhiều thử và sai và thấy điều này là do một ứng dụng web bảo mật WIF khác (trên máy chủ khác) tạo một cookie WIF với đường dẫn/dường như đang cố giải mã bởi ứng dụng web này. Tôi đã sửa lỗi này bằng cách điều chỉnh các giá trị đường dẫn được cả hai ứng dụng sử dụng. Thật kỳ lạ là tôi chỉ thấy lỗi này với IE chứ không phải Firefox/Chrome. Tôi sẽ phải dành nhiều thời gian hơn với điều này để hiểu rõ hơn về vấn đề này. –
Tôi đã chạy vào cùng một điều. Vui mừng bạn đã nhận nó làm việc ra. Tôi không chắc chắn lý do tại sao bạn sẽ chỉ thấy điều này trong IE, nhưng việc thay đổi đường dẫn cookie sẽ là bản sửa lỗi. –
Tôi đã gặp vấn đề tương tự sau khi tôi vô tình xóa trang web địa phương của mình. Xóa cookie wif và asp.net đã thực hiện thủ thuật. –