Me preguntaba cómo podría enlazar el IPrincipal a HttpContext.Current.User en Asp.net Mvc con Ninject.Asp.net Mvc: Ninject - IPrincipal
saludos Friendly,
Pickels
Editar:
No es seguro si importa pero yo uso mi propia clase CustomPrincipal.
Me preguntaba cómo podría enlazar el IPrincipal a HttpContext.Current.User en Asp.net Mvc con Ninject.Asp.net Mvc: Ninject - IPrincipal
saludos Friendly,
Pickels
Editar:
No es seguro si importa pero yo uso mi propia clase CustomPrincipal.
Usted puede hacer esto sin la necesidad de un proveedor en su NinjectModule
:
Bind<IPrincipal>()
.ToMethod(ctx => HttpContext.Current.User)
.InRequestScope();
Nota, que incluye .InRequestScope()
para asegurar que el valor del método se almacena en caché una vez por petición HTTP. Yo recomendaría hacerlo incluso si usa el mecanismo del proveedor.
que lo tengo:
public class PrincipalProvider : IProvider
{
public object Create(IContext context)
{
return HttpContext.Current.User;
}
public System.Type Type
{
get { return typeof(CustomPrincipal); }
}
}
Y en mi NinjectModule yo:
Bind<IPrincipal>().ToProvider<PrincipalProvider>();
Si esto es incorrecto o no completa por favor hágamelo saber y voy a ajustar/eliminar.
¿es posible persistir el proveedor de IP sobre diferentes capas, incluidas las que no hacen referencia a la web? – Haroon
Wow gracias, eso es un gran consejo. – Pickels
¡No hay problema, espero que ayude! –