2014-01-18 177 views
6

我最近使用身份验证和角色通过ServiceStack 4创建了Web服务,包括由MongoDB存储库支持的openId和OAuth提供程序Google,Twitter和LinkedIn。集成ASP.NET MVC 5身份和身份验证与ServiceStack 4

我想将这些服务与我的ASP.NET 5 MVC网站集成,该网站当前使用Microsoft的新标识(OWIN)框架和相同的提供程序进行注册,身份验证和角色。

我宁愿使用ServiceStack进行身份验证,注册和角色,并让我的MVC控制器对此进行授权。我已阅读关于SimpleMembership的帖子以及ServiceStack中授权和会话处理的维基。

我想知道的是,如果有,是以最新的MVC 5模板,替换/集成起动机模板或例如与ServiceStack 4.

具体如何做现有AccountControllerIdentityUserUserManagerUserStore被替换/修改为使用ServiceStack?

回答

1

我想知道的是,如果有,是以最新的MVC 5模板,并替代了起动模板或示例/集成与ServiceStack 4.

ServiceStackVS是一个扩展,它允许从零开始创建ServiceStack动力项目。有一个用于ASP.NET MVC 5的模板。

具体来说,现有的AccountController,IdentityUser,UserManager和UserStore如何被替换/修改为使用ServiceStack?

具体来说,所有的控制器需要从ServiceStackController<T>继承(其中TIAuthSession)。 在你的Global.asax的Application_Start你需要初始化你的AppHost。 然后,你有类似的东西

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)); 
     //... 
    } 
}