Nguon: Microsoft Learn · .NET 8.0

IHttpContextAccessor/HttpContext trong ASP.NET Core SignalR

Nguồn: IHttpContextAccessor/HttpContext in ASP.NET Core SignalR

Nhìn chung, nên tránh sử dụng IHttpContextAccessor/HttpContext với SignalR vì một HttpContext hợp lệ không phải lúc nào cũng có sẵn. Trong hầu hết các trường hợp, context không tồn tại (null).

Ngay cả khi một instance HttpContext có sẵn, context đó phụ thuộc vào transport (giao thức truyền tải):

Khi làm việc trong một SignalR hub, bạn có thể truy cập HttpContext trực tiếp bằng phương thức GetHttpContextExtensions.GetHttpContext. Phương thức này trả về HttpContext cho kết nối hiện tại, hoặc null nếu kết nối không liên kết với một HTTP request. Điều này đặc biệt hữu ích để lấy thông tin kết nối HTTP, chẳng hạn như headers và query strings, trực tiếp trong hub. Khuyến nghị sử dụng phương thức này thay vì IHttpContextAccessor để truy cập HttpContext trong hub. Để biết thêm thông tin, xem Use hubs in ASP.NET Core SignalR.

Để biết hướng dẫn về IHttpContextAccessor/HttpContext trong các ứng dụng ASP.NET Core Blazor, xem IHttpContextAccessor/HttpContext trong các ứng dụng ASP.NET Core Blazor.