Tôi đang sử dụng công cụ 4.5 WIF mới để xác thực người dùng trang web và bảo mật thông tin liên lạc giữa trang web MVC và các dịch vụ WCF của tôi.WIF 4.5 BootstrapContext security token null
Tôi có trang web được định cấu hình để lưu ngữ cảnh khởi động để tôi có thể sử dụng lại cùng một mã thông báo bảo mật cho tất cả các yêu cầu cho lớp dịch vụ.
Trong điều kiện bình thường, tất cả đều hoạt động tốt với mỗi yêu cầu trang web được xác thực và SecurityToken có sẵn thông qua ngữ cảnh để bảo đảm các cuộc gọi WCF.
Nếu tên miền ứng dụng trang web được đặt lại (ví dụ: xây dựng ứng dụng trong khi phát triển), mọi yêu cầu đến trang web sẽ vẫn được xác thực nhưng SecurityToken không còn khả dụng trong ngữ cảnh để chuyển sang cuộc gọi WCF nữa.
Debugging BootstrapContext
nó có 4 thuộc tính hữu ích:
SecurityToken
SecutiryTokenHandler
Token
TokenBytes
Pre-app miền reset thẻ bảo mật và SecurityTokenHandler có giá trị, và sau khi reset Mã có một giá trị. Khi bạn đặt lại giá trị cho Mã thông báo sau khi đặt lại, có vẻ như đây là XML SAML thô để tôi có thể bù lại toàn bộ SecutiryToken từ nó nhưng điều này có vẻ là hành vi lạ mà tôi không thể tìm thấy bất kỳ tài liệu nào về.
Bất kỳ ý tưởng nào tôi có thể làm để đảm bảo SecurityToken luôn có sẵn để giúp tôi giải quyết vấn đề với XML mã thông báo?
Cập nhật
Sử dụng dotPeek để nhìn vào những gì đang xảy ra trong mã nguồn khuôn khổ tôi có thể thấy con đường thực hiện điều đó casues hành vi này nhưng tôi không thể xác định bất cứ lý do tại sao nó cần thiết để được theo cách này và làm thế nào nó có thể được avioded.
Cuối cùng tôi đã từ bỏ cố gắng làm việc nó ra và bây giờ sử dụng đoạn mã sau đây để đảm bảo tôi có một mã thông báo
if (context.SecurityToken != null)
{
token = context.SecurityToken;
}
else if (context.Token.IsNotEmpty())
{
var handlers = FederatedAuthentication.FederationConfiguration.IdentityConfiguration.SecurityTokenHandlers;
token = handlers.ReadToken(new XmlTextReader(new StringReader(context.Token)));
}
gì Tôi bây giờ lo lắng về là tôi đã bỏ lỡ một số lý do đằng sau này behaiour và sửa chữa của tôi ở trên sẽ nổ tung tại một số điểm.
OWIN không giống WIF? – Kiquenet