Итак, я запускаю debug на localhost/auth/credential
с функцией auth и успешно вошел в систему с user=admin, pass=pass, rememberMe=true
. Я получил ответ Json UserName=admin, SessionId=1
, настолько хороший.ServiceStack IAuthSession после входа в систему
Тогда у меня есть SessionService
проверить мою текущую сессию:
[Route("user/session")]
public class Session {
}
public class SessionResponse {
public ResponseStatus ResponseStatus { get; set; }
public string UserName { get; set; }
public string SessionId { get; set; }
}
class SessionService : Service {
public dynamic Get(Session req) {
IAuthSession session = this.GetSession();
return new SessionResponse() {
SessionId = session.Id,
UserName = session.UserName,
};
}
}
Но когда я иду посетить:
localhost/user/session
Я получил SessionId = K16UMnr2eBXiIFUwAod, UserName = нуль где я ожидаемое имя пользователя = admin. Я застрял с этим часами, не могу понять, что я делаю неправильно. Пожалуйста помоги?
ОБНОВЛЕНИЕ ========================================== ==================
Когда я войти в систему, браузер получил:
X-UAId=1
тогда браузер послал:
ss-pid=zV7OOe2sP8hwlo8rR0EZ
ss-id=K16UMnr2eBXiIFUwAod
X-UAId=1
как показаны снимки:
URL: локальный// учетные данные формата AUTH = JSON
Затем я посещаю службы сеанса:
URL: локальный/пользователь/сеанс
Как вы можете видеть, я собираю ss-id как SessionId. Я вошел в систему с администратором, UserName = admin ожидается, но я получил UserName = null. Почему это?
Возможно, это глупый вопрос, но вы настроили [клиент кэша] (https://github.com/ServiceStack/ServiceStack/wiki/Caching)? Я не уверен, что это требуется, поскольку я всегда использую его в своих SS-приложениях. –
Вы используете браузер или что-то вроде Fiddler/REST Console для запросов на URL? Не появляется запрос на http: // localhost: 2000/user/session имеет файл cookie сеанса из вашего запроса в/auth/credential, сохраненный в вашем кеше. – paaschpa
@ Эли Гассерт, да. контейнер.Зарегистрировать (новый MemcachedClientCache (новый [] {"127.0.0.0:11211"})); –
Tom