2012-07-03 13 views
6

Có cách nào thực tế để truy cập các thuộc tính trang trí bộ điều khiển hoặc hành động từ Trình xử lý tin nhắn/DelegatingHandler không?Có thể truy cập các thuộc tính Bộ điều khiển/Hành động từ Trình xử lý Thư không?

Từ the diagram trên Pedro Felix's blog entry, có vẻ như Trình xử lý tin nhắn quá sớm trong đường dẫn và thông tin sẽ không khả dụng cho đến khi Trình xử lý tin nhắn điều phối viên điều khiển chạy. Chính xác?

Về trường hợp sử dụng của tôi:
Tôi đang làm việc với mô hình sắc Thinktecture, và nó sẽ là hữu ích để có thể tìm kiếm các AllowAnonymous thuộc tính trong AuthenticationHandler.

Trả lời

2

Tự nhiên, điều này có vẻ là địa điểm sai để triển khai. Như bạn đã lưu ý, Trình xử lý tin nhắn hoạt động trên tất cả các yêu cầu và phản hồi. Nếu bạn phụ thuộc vào một thuộc tính, điều này tự nhiên sẽ là một bộ lọc. Vì vậy, tôi đề nghị bạn đi theo con đường đó.

Thực tế trong trình xử lý, bạn không thể giả định rằng sẽ có một ApiController hoặc một hành động. Trình xử lý có thể được sử dụng đồng đều trên các máy khách.

+1

Cảm ơn câu trả lời +1. Tôi đồng ý với các quan sát kiến ​​trúc của bạn một cách tận tâm; nhưng đôi khi bạn chơi tay bạn đang xử lý. IdentityModel's 'AuthenticationHandler' được thực hiện như một Trình xử lý tin nhắn. Mã thông báo không hợp lệ ngừng xử lý và trả lại HTTP 401. Điều này hoàn hảo cho mọi tình huống ... ** ngoại trừ ** khi bạn muốn miễn cho phương thức phát hành mã thông báo hợp lệ (giả sử một mã là tự phát hành, thay vì sử dụng mã thông báo thứ 3 dịch vụ bên). – EBarr

+0

Tốt nhất là nói chuyện với Dominick - anh ấy rất cởi mở với những gợi ý khi nó phù hợp với sản phẩm. Tôi chưa xem xét nó sâu nhưng cần sớm nhận. – Aliostad

+0

Đồng ý - chúng tôi đã đi qua lại và tôi đang tạo một email khác cho anh ấy về chủ đề này. Tôi đang tìm kiếm một giải pháp thay thế, để tích hợp những thay đổi ít gây rối. BTW ... anh ấy bắt đầu xuất hiện trên SO một chút - http://stackoverflow.com/users/672453/leastprivilege – EBarr