2013-07-01 4 views
0

У меня есть служба WCF, размещенная в IIS. У меня есть другой сайт, размещенный в asp.net mvc. Это общедоступный веб-сайт. Я хочу защитить мою службу WCF, чтобы она не была доступна из любых приложений, отличных от моего приложения MVC, или я предоставляю доступ.Как защитить службу WCF

Могу ли я сделать это с помощью проверки подлинности на основе форм?

Update:

я прошел через несколько примеров, но я не мог получить эффективный один. Я не хочу использовать ssl. Функция входа не существует в моем веб-приложении. При необходимости может быть реализован программный логин. Все, что мне нужно - это запретить доступ, если служба не вызывается с моего сайта. Я сделал это в веб-службе, используя проверку подлинности форм. Но здесь httpcontext имеет значение null.

+0

FYI, термин «служба WCF», а не «WCF». –

+0

На ваш вопрос много потенциальных дубликатов; пока он слишком широк. [Изучите параметры безопасности] (http://msdn.microsoft.com/en-us/library/ms732362.aspx), относящиеся к вашим привязкам, и обновите свой вопрос, когда у вас возникли проблемы с пониманием или внедрением определенного принципа. – CodeCaster

ответ

0

Да, вы можете. Вызовы WCF проходят по одному и тому же конвейеру, так что если вы проверяете конкретные принципы (имена пользователей или роли), ваши проверки будут неудачными/успешными в зависимости от файла cookie форм.

Подробнее в моем блоге

http://netpl.blogspot.com/2010/04/aspnet-forms-authentication-sharing-for.html

, где я показываю, как разделить идентичность форм между веб-приложением и размещение SilverLight приложение, которое вызывает службы WCF.

В случае еще одного типа клиентского приложения способ получения значения cookie на стороне клиента может отличаться. Silverlight просто наследует файлы cookie из веб-приложения, из которого он запущен.

Предполагая, что ваш клиент является консольным приложением, вы можете даже разоблачить неохраняемый метод из службы WCF, который принимает пароль loginname + и возвращает cookie клиенту. Таким образом, консольное приложение сначала вызовет этот неохраняемый метод для входа в систему пользователя, а затем, используя возвращенный cookie, вызовет другие службы WCF, защищенные с помощью проверки подлинности форм.

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