Безопасность службы данных WCF в приложении WPF

#wpf #wcf #authentication #dataservice

#wpf #wcf #аутентификация #служба данных

Вопрос:

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

Комментарии:

1. Может помочь создание пользовательских токенов.. Ваш вопрос интересен 🙂

Ответ №1:

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

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

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