ServiceStack: Accediendo a HttpRequest en una aplicación autoportada

Actualmente tengo una aplicación alojada en IIS que me gustaría cambiar para usar el método auto-alojado.

Pero tengo dificultades para acceder a la sesión, por lo que puedo recuperar el nombre de usuario actual de los usuarios.

Este es el código que utilicé cuando alojé bajo IIS que funcionó perfectamente:

/// <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"; }
    }
}

Esto se agrega al host de la aplicación con el siguiente código:

container.RegisterAutoWiredAs<ServiceStackAuthTokenService, IAuthTokenService>()

Cuando se ejecuta el modo HttpContext.Current en modo autocontenido es nulo, ¿cómo accedo a la solicitud en una aplicación auto hospedada?

¡Gracias!

Actualizar Cosas adicionales que he probado:

según una publicación aquí:https://groups.google.com/forum/#!msg/servicestack/jnX8UwRWN8A/_XWzTGbnuHgJ

Se sugirió utilizar:

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

Esto solo devuelve un IAuthSession nuevo.

Lo que el usuario en esa publicación está haciendo es exactamente lo que estoy tratando de lograr.

En el último post Mythz dice:

Para que quede claro, para formar la clave de sesión que hace referencia a la sesión de usuarios, necesita las cookies ss-id o ss-pid (según lo determinado por ss-opts). Puede obtener cookies fuera del objeto IHttpRequest o, de lo contrario, en ASP.NET el HttpContext.Current.Request singleton, por lo que cualquier fábrica de IAuthserSession que inyecte debe tomar algo que le dé las cookies, es decir, un IRequestContext, IHttpRequest, IService, etc.

Pero todavía no puedo ver una manera de acceder a la IHttpRequest.

Respuestas a la pregunta(1)

Su respuesta a la pregunta