Лучший способ обработки аутентификации сообщений WCF в облаке (C #) - PullRequest
3 голосов
/ 12 апреля 2011

Я посмотрел на многие источники и нашел много примеров, но ни один из них не соответствует ситуации, в которой я надеюсь взять проект.Я пишу несколько служб WCF, некоторые из которых общедоступны, а другие нет (сервер-сервер), которые позволят создать полностью гибкое облачное приложение, обеспечивающее возможность масштабирования службы по мере необходимости через Azure.Я не уверен, какой способ пойти с аутентификацией сообщений, так как я хочу убедиться, что определенный пользователь вошел в систему, может выполнять различные задачи и не позволять другим выполнять эти задачи.

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

Что ты думаешь?

Ответы [ 2 ]

3 голосов
/ 12 апреля 2011

Вы можете легко реализовать аутентификацию без необходимости вручную передавать токен во все ваши функции, используя UserNameAuthentication и написание собственного валидатора - здесь есть довольно простое руководство здесь

Если вы используете UserNameAuthentication, вам нужно будет использовать SSL / HTTPS, что означает, что вам нужно получить сертификат сервера - в любом случае, это хорошая идея для большинства бизнес-приложений.

На стороне сервера вы можете получить личность текущего пользователя:
IIdentity wic = OperationContext.Current.ServiceSecurityContext.PrimaryIdentity as IIdentity;

0 голосов
/ 12 апреля 2011

используйте обычную аутентификацию и сделайте так, чтобы веб-сервис проходил аутентификацию в вашем магазине членства.

...