2014-12-28 3 views
-1

У меня есть аутентификация и сеанс службы безопасности, хорошо доступный в ASP.NET MVC, я могу хорошо перемещаться между страницами и получать сеанс без проблем и оставаться на входах на каждой странице.Сессия Servicestack потеряна ПОСЛЕ javascript API call-NOT A BUG

Я могу обновить страницы, без проблем.

Однако, как только я сделать вызов API к службе ServiceStack, это вызывает проблему:

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

https://github.com/darrenshrwd/InvestigateSSAuth

... НЕ BUG ... Я оставил следующие строки, первоначально скопированы из моего предыдущего проекта:

//Add a response filter (https://github.com/ServiceStack/ServiceStack/wiki/Request-and-response-filters) ... 
    //...to CLEAR the user session after the service is executed as this is a Stateless service. 
    GlobalResponseFilters.Add((req, res, dto) => req.RemoveSession()); 
+0

не дает много идти дальше, многие из [ServiceStack живут Demos] (https://github.com/ServiceStackApps/LiveDemos) включили аутентификацию и сделали Ajax API-вызовы без потери сеанса. Вам понадобится репродукция для дальнейшего изучения (GitHub?). Какой CacheClient вы используете? – mythz

+0

@mythz https://github.com/darrenshrwd/InvestigateSSAuth Я сократил его до достаточно левого, чтобы воспроизвести ошибку, спасибо. – Darren

+0

... конечно, это может быть не ошибка. – Darren

ответ

1

НЕ BUG !!

я тупо были следующие строки осталось в от моего предыдущего проекта:

//Add a response filter (https://github.com/ServiceStack/ServiceStack/wiki/Request-and-response-filters) ... 
    //...to CLEAR the user session after the service is executed as this is a Stateless service. 
    GlobalResponseFilters.Add((req, res, dto) => req.RemoveSession()); 
Смежные вопросы