#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 минут.