ServiceStack: Acessando o HttpRequest em um aplicativo auto-hospedado

Eu atualmente tenho um aplicativo hospedado no IIS que eu gostaria de mudar para usar o método auto-hospedado.

Mas estou tendo dificuldade em acessar a sessão para recuperar o nome de usuário atual.

Este é o código que usei quando hospedei no IIS, o que funcionou perfeitamente:

/// <summary>
/// A basic wrapper for the service stack session, to allow access to it lower down in the DAL layer without tying us to servicestack.
/// </summary>
public class ServiceStackAuthTokenService : IAuthTokenService
{
    /// <summary>
    /// GetCurrentAuthToken.
    /// </summary>
    /// <returns>A string representing the users auth name.</returns>
    public string GetCurrentAuthToken()
    {
        // Grab the current request.
        var req = HttpContext.Current.Request.ToRequest();
        var res = HttpContext.Current.Response.ToResponse();

        // Fetch the authentication service.
        var authService = EndpointHost.AppHost.TryResolve<AuthService>();
        authService.RequestContext = new HttpRequestContext(req, res, null);

        // Grab the session.
        var session = authService.GetSession(false);

        // Return the username.
        return session.UserName;
    }

    public string UserPropertyName
    {
        get { return "UserName"; }
    }
}

Isso é adicionado ao host do aplicativo com o seguinte código:

container.RegisterAutoWiredAs<ServiceStackAuthTokenService, IAuthTokenService>()

Ao executar auto-hospedado, o HttpContext.Current é nulo, como acesso a solicitação em um aplicativo auto-hospedado?

Obrigado!

Atualizar Coisas adicionais que eu tentei:

como por um post aqui:https://groups.google.com/forum/#!msg/servicestack/jnX8UwRWN8A/_XWzTGbnuHgJ

Foi sugerido usar:

container.Register> (c => AuthService.CurrentSessionFactory);

Isso apenas retorna um IAuthSession novo.

O que o usuário nessa postagem está fazendo é exatamente o que estou tentando alcançar.

No último post Mythz diz:

Apenas para ficar claro, para formar a Session Key que faz referência à sessão Users, você precisa dos cookies ss-id ou ss-pid (conforme determinado por ss-opts). Você pode obter cookies do objeto IHttpRequest ou, de outra forma, no ASP.NET, o singleton HttpContext.Current.Request, portanto, qualquer fábrica IAuthUserSession que você injeta precisa pegar algo que possa fornecer os cookies, ou seja, um IRequestContext, IHttpRequest, IService etc.

Mas eu ainda não consigo ver uma maneira de acessar o IHttpRequest.

questionAnswers(1)

yourAnswerToTheQuestion