ServiceStack: доступ к HttpRequest в автономном приложении

В настоящее время у меня есть приложение, размещенное на IIS, которое я хотел бы переключить на использование собственного метода.

Но у меня возникают трудности с доступом к сеансу, поэтому я могу получить текущее имя пользователя.

Это код, который я использовал при хостинге под IIS, который работал отлично:

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

Это добавляется на хост приложения со следующим кодом:

container.RegisterAutoWiredAs<ServiceStackAuthTokenService, IAuthTokenService>()

При запуске собственного хоста HttpContext.Current имеет значение null, как мне получить доступ к запросу в самом размещенном приложении?

Спасибо!

Обновить Дополнительные вещи, которые я попробовал:

согласно посту здесь:https://groups.google.com/forum/#!msg/servicestack/jnX8UwRWN8A/_XWzTGbnuHgJ

Было предложено использовать:

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

Это просто возвращает новую IAuthSession.

То, что делает пользователь в этом посте, именно то, чего я пытаюсь достичь.

В последнем посте Mythz говорит:

Просто для ясности, чтобы сформировать ключ сеанса, который ссылается на сеанс пользователей, вам нужны куки ss-id или ss-pid (как определено ss-opts). Вы можете получить куки-файлы от объекта IHttpRequest или иным образом в ASP.NET - синглтоне HttpContext.Current.Request, поэтому любой фабрике IAuthUserSession, которую вы вводите, нужно взять что-то, что может дать ему куки-файлы, то есть либо IRequestContext, IHttpRequest, IService и т. Д.

Но я все еще не вижу способа получить доступ к IHttpRequest.

Ответы на вопрос(1)

Ваш ответ на вопрос