У меня есть проект с несколькими отдельными компонентами, которые все должны общаться друг с другом. Сейчас я пытаюсь найти хороший способ разделения системы разрешений между каждым компонентом.
3 основных компонента:
- Веб-приложение ASP.Net
- Приложение Silverlight (обслуживается веб-приложением)
- Служба Windows, предоставляющая некоторые веб-службы WCF для приложения Silverlight.
Серверы (1,3) оба имеют доступ к одной и той же базе данных. Связь между каждым компонентом осуществляется веб-службами WCF.
Мне нужно убедиться, что тот, кто запрашивает информацию из Службы Windows (3), является пользователем с правильными правами доступа к ней. Приложение Silverlight (2) - это источник запросов. На данный момент никакая пользовательская информация не доступна для службы Windows (1), поскольку она полностью отделена от приложения Asp.Net (3). Я не хочу хранить и передавать имя пользователя и пароль, и пользователь должен будет ввести свои учетные данные только один раз, что происходит при входе в приложение ASP.Net (1).
Как можно получить идентификацию пользователя в службе Windows (3)?
(я опубликую возможность, которую я вижу в качестве ответа ниже.)