Безопасность службы данных WCF в приложении WPF - PullRequest
5 голосов
/ 05 ноября 2011

Я работаю над решением, в котором у меня есть проект WPF, использующий WCF DataService, который находится в другом проекте ASP .NET для доступа к данным.
Мне нужно обеспечить уровень безопасности, который гарантирует, что только аутентифицированные пользователи могут получить доступ к сервису.Пройдя по сети, я сломал голову, пытаясь добиться этого.Как правильно это реализовать?

1 Ответ

2 голосов
/ 05 ноября 2011

Я делал это в прошлом, когда метод WCF Login создавал пользовательский объект, назначал пользовательскому объекту токен (в моем случае это был GUID) и сохранял его внутри на сервере WCF в AuthenticatedUsers list.

Любой другой вызов WCF требовал токен в качестве параметра.Он проверит, существует ли пользователь в списке AuthenticatedUsers с этим токеном, и выдаст ошибку, если пользователь с этим токеном не существует.Дополнительным преимуществом является то, что я всегда буду знать, кто сделал вызов WCF, не требуя от них передачи идентификатора пользователя.

Я также сохранил LastActivity DateTime с объектами User на сервере.Каждый вызов WCF обновлял бы это значение, и в списке AuthenticatedUsers на сервере WCF было хотя бы одно значение, на сервере запускался таймер, который проверял бы значение AuthenticatedUsers LastActivity и удалял пользователя, если он был неактивенболее 20 минут.

...