Передача идентификационных данных пользователя по уровням с ASP.NET и WCF - PullRequest
4 голосов
/ 11 ноября 2009

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

Браузер -> ASP.NET -> WCF. Когда вызов заканчивается на уровне WCF, мне нужно знать имя пользователя, полученное ASP.net (User.Identity.Name).

С помощью .NET Remoting я создал пользовательский принципал, который я спрятал в LogicalCallContext. Затем, с помощью пользовательского приемника удаленного взаимодействия на стороне удаленного сервера, я установил для текущего участника принципала принципал в LogicalCallContext.

Как правильно сделать что-то подобное с WCF? Опять же, моя служба WCF может вызываться только из учетной записи службы, на которой работает ASP.NET, но мне нужно знать, от кого в конечном счете зависит этот вызов.

Ответы [ 2 ]

2 голосов
/ 11 ноября 2009

Аутентифицирует ли ваша служба WCF и доверяет ли приложениям ASP.NET (например, использует аутентификацию Windows для аутентификации учетной записи службы, под которой запускаются приложения ASP.NET).

Если это так, вы можете рассмотреть возможность передачи информации об окончательном абоненте в пользовательский заголовок SOAP.

Вы можете скрыть подробности gory из кода своего приложения, используя пользовательское поведение WCF с ClientMessageInspector, который добавляет заголовок SOAP на стороне клиента, и DispatchMessageInspector, который обрабатывает заголовок SOAP на стороне сервера.

1 голос
/ 11 ноября 2009

Полагаю, вы захотите проверить поставщика членства в WCF. Я написал несколько месяцев об этом http://sgomez.blogspot.com/2007/12/wcf-membership-provider-sample.html, перейдите по ссылкам, а также рекомендую книгу Learning WCF Мишель Леру Бустаманте .

Удачи! (тебе это понадобится)

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