2012-05-14 31 views
6

Tôi cần bằng cách nào đó đính kèm dữ liệu tùy chỉnh của mình vào HttpRequest đang được xử lý bởi mô-đun tùy chỉnh IIS của tôi - để mã chạy trong giai đoạn đầu của đường ống IIS gắn một đối tượng và mã chạy trong các giai đoạn sau có thể truy xuất đối tượng và sử dụng không có chức năng xử lý đường ống IIS khác bị thay đổi bằng cách thêm đối tượng đó.Làm cách nào để kết hợp một số dữ liệu tùy chỉnh với HttpRequest hiện tại?

Dữ liệu chỉ cần tồn tại trong một yêu cầu HTTP - Tôi không cần nó được lưu trữ giữa các yêu cầu. Tôi cần nó được "thiết lập lại" cho mỗi yêu cầu mới tự động - để khi một yêu cầu mới đến nó không chứa các đối tượng mã của tôi gắn liền với yêu cầu trước đó.

Có vẻ như HttpContext.Items là cách để đi, mặc dù mô tả MSDN về mục đích của nó không rõ ràng.

Đang sử dụng HttpContext.Current.Items cách để giải quyết sự cố của mình?

+0

xin lỗi tôi đã xóa câu trả lời của mình - có vẻ như tôi không hiểu câu hỏi của bạn hoàn toàn. bạn có thể xây dựng ? –

+0

@Royi Namir: Tôi đã cập nhật câu hỏi. – sharptooth

+0

Có, có vẻ như 'HttpContext.Items' là nội dung bạn muốn trong kịch bản của mình. Đồng ý, lời giải thích MSDN là khá ngắn gọn, nhưng bạn sẽ thấy rằng khá nhiều mọi thứ bạn sẽ làm việc với sẽ được thực hiện 'IHttpModule' hoặc' IHttpHandler' ('System.Web.UI.Page' ví dụ thực hiện' IHttpHandler'). –

Trả lời

4

Điều này sẽ hoạt động - tôi đã thực hiện việc này trong một dự án trước đây.

Tôi có một lớp học trong đó có một thuộc tính tĩnh như thế này -

public class AppManager 
{ 
    public static RequestObject RequestObject 
    { 
     get 
     { 
      if (HttpContext.Current.Items["RequestObject"] == null) 
      { 
       HttpContext.Current.Items["RequestObject"] = new RequestObject(); 
      } 

      return (RequestObject)HttpContext.Current.Items["RequestObject"]; 
     } 
     set { HttpContext.Current.Items["RequestObject"] = value; } 
    } 
} 

Và sau đó RequestObject chứa tất cả dữ liệu tùy chỉnh của tôi như vậy thì trong ứng dụng của tôi, tôi có thể làm

AppManager.RequestObject.CustomProperty 

Cho đến nay tôi có không đi qua bất kỳ vấn đề trong cách HttpContext.Items hoạt động.

Các vấn đề liên quan