Передать учетные данные членства ASP.NET из приложения MVC в приложение WCF - PullRequest
3 голосов
/ 02 марта 2012

Я разработал приложение MVC, основанное на проверке подлинности на основе форм с использованием поставщика членства ASP.NET.

На этом же сервере также содержится приложение WCF, которое указывает на ту же базу данных, что и приложение MVC (включая всетаблицы aspnet).

Я хочу проверить, к каким группам принадлежит пользователь в сервисах.

Как передать учетные данные из приложения MVC в приложение WCF?

Ответы [ 2 ]

1 голос
/ 04 марта 2012

Ну, вы можете либо

  • разработка любого вида API в приложении MVC для взаимодействия с приложением WCF (и это позволит вам развернуть две вещи в любом месте в будущем),

  • Попробуйте и позвольте службе WCF использовать провайдеров членства для аутентификации и укажите провайдеров членства на стороне wcf в том же БД.

проверить это

[Говоря о поставщиках членства] Разработчики Windows Communication Foundation (WCF) могут использовать эти функции в целях безопасности. При интеграции в приложение WCF пользователи должны предоставить комбинацию имени пользователя и пароля клиентскому приложению WCF. Чтобы передать данные в службу WCF, используйте привязку, которая поддерживает учетные данные имени пользователя и пароля, например WSHttpBinding (в конфигурации, элемент wsHttpBinding) и установите тип учетных данных клиента равным UserName. В службе безопасности WCF аутентифицирует пользователя на основе имени пользователя и пароля , а также назначает роль, указанную ролью ASP.NET .

.

Это статья, содержащая примеры конфигурации

Надеюсь, я понял ваши потребности.

0 голосов
/ 02 марта 2012

Поскольку вы используете Membership Provider, вы можете проверить Identity (аутентифицированный пользователь), который выполняет поток, который обращается к вашему ресурсу в приложении WCF через System.Threading.Thread.CurrentPrincipal.Identity.

Пример:

В вашем приложении WCF может быть метод, который обнаруживает аутентифицированного пользователя, а затем оттуда запрашивает вашу БД, чтобы получить группы, в которые входит этот пользователь:

static List<UserGroup> GetUserGroups()
{

// Get the authenticated username
string username = System.Threading.Thread.CurrentPrincipal.Identity.Name;

// Get the user's groups from your data store and pack them up in a list
...
etc

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...