Я делал это в прошлом, когда метод WCF Login
создавал пользовательский объект, назначал пользовательскому объекту токен (в моем случае это был GUID) и сохранял его внутри на сервере WCF в AuthenticatedUsers
list.
Любой другой вызов WCF требовал токен в качестве параметра.Он проверит, существует ли пользователь в списке AuthenticatedUsers
с этим токеном, и выдаст ошибку, если пользователь с этим токеном не существует.Дополнительным преимуществом является то, что я всегда буду знать, кто сделал вызов WCF, не требуя от них передачи идентификатора пользователя.
Я также сохранил LastActivity
DateTime с объектами User на сервере.Каждый вызов WCF обновлял бы это значение, и в списке AuthenticatedUsers
на сервере WCF было хотя бы одно значение, на сервере запускался таймер, который проверял бы значение AuthenticatedUsers LastActivity
и удалял пользователя, если он был неактивенболее 20 минут.