現在、HttpContext から現在のユーザー名を取得し、それをサービス メソッドで使用するアクションに渡す ActionFilter があります。例えば:
Service.DoSomething(userName);
アクション レベルではなく、コントローラー コンストラクター レベルでこれを行う理由ができました。現在、構造マップを使用してコントローラーを作成し、サービスを注入しています。私は次のようなものを見ています:
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;
}
}
}
とはいえ、これは私が使用した最初のプロジェクトであるため、私の IoC foo は非常に弱いです。
だから私の質問は...構造マップにHttpContextUserProviderのコンストラクターでHttpContextを渡すように指示するにはどうすればよいですか? これは奇妙に思えます... HttpContextの考え方がわかりません。