Установка файла cookie ServiceStack в Web.Config приводит к изменению идентификатора сеанса при каждом запросе

СогласноServiceStack - аутентификация для домена и поддоменовЯ установил домен cookie в разделе httpCookies, и он фактически работает - он правильно устанавливает домен cookie.

Но я заметил, что, как только я добавляю эту строку в конфигурацию, новый идентификатор сеанса генерируется при каждом запросе, независимо от того, был ли пользователь уже аутентифицирован.

Мой код прост и прост.

Код хоста моего приложения:

public override void Configure(Funq.Container container)
{
        Plugins.Add(new AuthFeature(() => new CustomUserSession(),
            new IAuthProvider[] {        
                    new CustomCredentialsProvider(), 
                }));

        container.Register<IRedisClientsManager>(c => new PooledRedisClientManager("10.211.55.2:6379"));
        container.Register<ICacheClient>(c => c.Resolve<IRedisClientsManager>().GetCacheClient());

        var userRep = new InMemoryAuthRepository();
        container.Register<IUserAuthRepository>(userRep);
}

Мой поставщик пользовательских учетных данных:

public class CustomCredentialsProvider : CredentialsAuthProvider
{
    public override bool TryAuthenticate(ServiceStack.IServiceBase authService, string userName, string password)
    {
        return true;
    }

    public override void OnAuthenticated(ServiceStack.IServiceBase authService, IAuthSession session, IAuthTokens tokens, Dictionary<string, string> authInfo)
    {
        session.UserAuthName = "test user";
        session.UserName = "test user";

        authService.SaveSession(session);
    } 
}

Моя страница по умолчанию:

public partial class _Default : WebForms.App_Start.PageBase
{
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            //get session information in every way possible
            var session = this.UserSession;

            var sessionKey = SessionFeature.GetSessionKey();

            var session2 = SessionFeature.GetOrCreateSession<CustomUserSession>(this.Cache);

            var session3 = this.Cache.Get<CustomUserSession>(sessionKey);        

        }

sessionKey, выше, будет выдан и останется неизменным при каждом запросе (что ожидается). Добавление:

<system.web>
  <httpCookies domain="localhost"/>

заставляет sessionKey быть различным каждый запрос; почти как cookie, немедленно истекает. Изменение домена на что-то вроде «test.com» или «.test.com», похоже, не имеет значения. Я добавил 127.0.0.1 localhost и 127.0.0.1 test.com в мой файл хостов Windows для хорошей меры.

Опять же, комментирование строки httpCookies и идентификатора сеанса остается неизменным даже после аутентификации. Добавление вышеуказанной строки приводит к изменению сеанса при каждом запросе, независимо от того, проходит ли аутентификация или нет.

Cookies устанавливаются и устанавливаются с новым идентификатором сеанса при каждом запросе.

Что я могу делать не так и где бы я переопределил это поведение? Любая помощь приветствуется.

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

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