我想知道如何在Asp.net Mvc中使用Ninject將IPrincipal綁定到HttpContext.Current.User。Asp.net Mvc:Ninject - IPrincipal
友好的祝福,
Pickels
編輯:如果
不知道它的問題,但我用我自己的CustomPrincipal類。
我想知道如何在Asp.net Mvc中使用Ninject將IPrincipal綁定到HttpContext.Current.User。Asp.net Mvc:Ninject - IPrincipal
友好的祝福,
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>();
如果這是錯誤的或不完整,請讓我知道,我會調整/刪除。
是否可以將IProvider保存在不同的圖層上,包括那些不參考網頁的圖層? – Haroon 2011-06-23 06:31:02
謝謝,這是一個很棒的提示。 – Pickels 2010-04-28 18:55:09
沒問題,希望它有幫助! – 2010-04-28 20:06:16