我想知道如何在Asp.net Mvc中使用Ninject将IPrincipal绑定到HttpContext.Current.User。
友好的问候,
Pickels
编辑:
不确定是否重要,但我使用自己的CustomPrincipal类。
友好的问候,
Pickels
编辑:
不确定是否重要,但我使用自己的CustomPrincipal类。
您可以在NinjectModule
中不需要提供程序来实现此操作:
Bind<IPrincipal>()
.ToMethod(ctx => HttpContext.Current.User)
.InRequestScope();
请注意,我包含了.InRequestScope()
以确保该方法的值每个HTTP请求仅缓存一次。即使您使用提供程序机制,我也建议这样做。
我明白了:
public class PrincipalProvider : IProvider
{
public object Create(IContext context)
{
return HttpContext.Current.User;
}
public System.Type Type
{
get { return typeof(CustomPrincipal); }
}
}
在我的 NinjectModule 中,我执行以下操作:
Bind<IPrincipal>().ToProvider<PrincipalProvider>();