将ASP.NET MVC 5身份和身份验证与ServiceStack 4集成

时间:2014-01-18 20:04:23

标签: servicestack asp.net-mvc-5 asp.net-identity

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

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

我更愿意使用ServiceStack进行身份验证,注册和角色,并让我的MVC控制器对其进行授权。我已经阅读了关于SimpleMembership的帖子以及围绕ServiceStack中的授权和会话处理的wiki。

我想知道的是,是否有一个入门模板或示例采用最新的MVC 5模板并将其替换/与ServiceStack 4集成。

具体来说,现有的AccountControllerIdentityUserUserManagerUserStore如何被替换/修改以使用ServiceStack?

1 个答案:

答案 0 :(得分: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));
        //...
    }
}