Hiện tại tôi có một ActionFilter lấy tên người dùng hiện tại từ HttpContext và chuyển nó vào hành động sử dụng nó trên một phương thức dịch vụ. ví dụ:ASP.NET MVC: HTTPContext và Dependency Injection
Service.DoSomething(userName);
Bây giờ tôi có lý do để làm điều này không phải ở cấp hành động mà là cấp độ bộ điều khiển bộ điều khiển. Hiện tại tôi đang sử dụng bản đồ cấu trúc để tạo bộ điều khiển và tiêm dịch vụ. Tôi đang xem một cái gì đó như:
public interface IUserProvider
{
string UserName { get; }
}
public class HttpContextUserProvider : IUserProvider
{
private HttpContext context;
public HttpContextUserProvider(HttpContext context)
{
this.context = context;
}
public string UserName
{
get
{
return context.User.Identity.Name;
}
}
}
Điều đó nói rằng, IoC foo của tôi thực sự yếu vì đây là dự án đầu tiên tôi đã sử dụng.
Vì vậy, câu hỏi của tôi là ... làm thế nào tôi có thể nói cho bản đồ cấu trúc để vượt qua trong HttpContext trong constructor cho HttpContextUserProvider? Điều này có vẻ lạ ... Tôi không chắc làm thế nào để nghĩ về HttpContext.
Ý của bạn là gì, "Thêm các tham số kiểu chung cho túi"? Âm thanh hấp dẫn. –
cung cấp các trình bao bọc mạnh mẽ trong phiên –
bạn có bất kỳ mã mẫu/liên kết nào không, điều này có vẻ thú vị. Tôi không hiểu điều này đúng cách, bất kỳ trợ giúp/lời khuyên nào sẽ được đánh giá cao ... – Haroon