2014-01-18 218 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)); 
     //... 
    } 
}