2015-09-17 4 views
0

Мне нужно создать пользовательскую аутентификацию/авторизацию в существующей службе WCF, которая должна быть для каждого метода: некоторые методы должны заставить пользователя войти в систему, а другие должны разрешить анонимное использование. Услуга реализована как singleton.Конфигурация WCF с использованием идентификатора сеанса связи

Чтобы сделать это, я хочу сделать следующее:

  • позволяют сеансы с поведением по умолчанию, так что каждый из существующих методов обслуживания будет инициировать сеанс в случае, если она не существует;
  • add login (имя_пользователя, пароль) метод, который сохранит успешный артефакт входа в обертке вокруг Dictionary<>, с текущим идентификатором сеанса, используемым в качестве ключа;
  • добавить logout() метод, который закрывает сеанс и удаляет артефакт из словаря;
  • добавить сессионный монитор, который будет использовать Dictionary<SessionId, WeakReference<OperationContext.Current>> для сеансов сбрасывания, для которых метод logout() не был вызван. Монитор будет выполняться каждый раз, когда будет добавлен новый сеанс.

Есть два вопроса, хотя:

  1. Есть более простой способ достичь в-метод аутентификации?
  2. Есть ли проблемы с этим подходом?

ответ

0

Для получения специального разрешения вы должны использовать Custom Authorization Manager. Вы должны управлять сеансами с ASP.net, доступ к которым возможен, если вы включите совместимость AspNet.

Смежные вопросы