如何在baseController中获取UserSession?

时间:2012-09-04 17:20:31

标签: servicestack

我试图获得UserSession。

public abstract class BaseController : ServiceStackController<CustomUserSession>
{
    public AuthService AuthService { get; set; } // NOT Autowired -Problem 1
    public BaseController()
    {
        //this.ControllerContext = null  -Problem 2
        //UserSession   'UserSession' threw an exception of type System.NullReferenceException' -Problem 3

        if (!this.ControllerContext.IsChildAction)
        {

        }
    }
}

但是你可以看到有3个问题。 为什么我需要这个?我想在_Layout.cshtml中应用用户特定的CSS。

如何在Controller中获取当前用户会话?

1 个答案:

答案 0 :(得分:1)

我有一个null UserSession,通过将以下代码添加到AppHost中的Configure方法来解决它:

    //Set MVC to use the same Funq IOC as ServiceStack
    ControllerBuilder.Current.SetControllerFactory(new FunqControllerFactory(container));
    ServiceStackController.CatchAllController = reqCtx => container.TryResolve<HomeController>();

不确定AuthService自动装配,也许上面也会解决这个问题