framework - servicestack net
IntegraciĆ³n de ASP.NET MVC 5 Identidad y autenticaciĆ³n con ServiceStack 4 (1)
Recientemente, creé servicios web utilizando autenticación y roles a través de ServiceStack 4, incluidos los proveedores de OpenId y OAuth Google, Twitter y LinkedIn respaldados por un repositorio de MongoDB.
Me gustaría integrar esos servicios con mi sitio web ASP.NET 5 MVC que actualmente utiliza el nuevo marco de identidad de Microsoft (OWIN) con los mismos proveedores para el registro, la autenticación y los roles.
Preferiría usar ServiceStack para la autenticación, el registro y los roles y hacer que mis controladores MVC autoricen contra eso. He leído las publicaciones sobre SimpleMembership
y la wiki sobre Autorización y manejo de sesiones en ServiceStack.
Lo que me gustaría saber es si hay una plantilla o ejemplo inicial que tome la plantilla más reciente de MVC 5 y la reemplace / integre con ServiceStack 4.
Específicamente, ¿cómo se reemplazan / modifican el AccountController
, IdentityUser
, UserManager
y UserStore
para usar ServiceStack?
Lo que me gustaría saber es si hay una plantilla o ejemplo inicial que tome la plantilla más reciente de MVC 5 y la reemplace / integre con ServiceStack 4.
ServiceStackVS es una extensión que permite crear proyectos con ServiceStack desde cero. Hay una plantilla para ASP.NET MVC 5.
Específicamente, ¿cómo se reemplazan / modifican el AccountController, IdentityUser, UserManager y UserStore para usar ServiceStack?
Específicamente, todos sus controladores deben heredar de ServiceStackController<T>
(donde T
es IAuthSession
). en el Application_Start
tu global.asax necesitas inicializar tu AppHost. Entonces, tienes algo así
public class MyAppHost : AppHostBase
{
public MyAppHost() : base("My Service Name")
{
}
public override void Configure(Container container)
{
// Configure your container here (authentication, plugins...)
}
}
public class MvcApplication : HttpApplication
{
private MyAppHost AppHost { get; set; }
protected void Application_Start()
{
//...
AppHost = new MyAppHost(this).Init();
ControllerBuilder.Current.SetControllerFactory(new FunqControllerFactory(AppHost.Container));
//...
}
}