2012-06-16 5 views
0

Я новичок в WCF, и я хочу знать, как защитить службу WCF Rest. У меня есть сайт asp.net, только зарегистрированные пользователи могут получить к нему доступ, приложение использует службу, размещенную на том же сервере IIS, мой вопрос в том, как я могу ограничить использование этой службы, поскольку только зарегистрированные пользователи могут ее использовать , зная, что услугу можно использовать многими клиентами (Android, iPhone, ...). какой тип аутентификации я могу использовать? для проверки сервиса я создал winform, и я использую HttpWebRequest. PS: Я не могу использовать https. ThanksКак защитить службу WCF Rest с именем пользователя и паролем?

ответ

0

Самый простой способ - использовать режим совместимости asp.net. Вызов службы WCF приведет к той же предварительной обработке, которая используется для страниц ASP.NET, включая проверку файлов cookie и файлов cookie ASP.NET. Вы также сможете проверить HttpContext, включая httpcontext.current.user.identity.isauthenticated. Если пользователь не аутентифицирован, генерирует исключение или возвращает код ошибки. Вот еще одна информация: http://msdn.microsoft.com/en-us/library/aa702682.aspx.

Итак, если вы уже используете формы auth для своего приложения, и служба должна вызываться после того, как пользователь выполнил вход в ваше приложение, вы настроены.

Вы также можете создать службу аутентификации. Служба позволит клиенту отправить имя пользователя/пароль и будет использовать аутентификацию ASP.NET для аутентификации пользователя. Он отправит обратно файл cookie auth, а затем вы сможете проверить будущие вызовы службы, как указано выше. См. http://msdn.microsoft.com/en-us/library/bb386582.aspx.

Я считаю, что услугу аутентификации можно вызвать с помощью json. См. How to Call .NET AuthenticationService from json client without ASP.NET.

+0

Благодарим вас за быстрый ответ Jappel, но я думаю, что когда мы говорим о сервисе Rest, все должно произойти через URL-адрес, верно? Я думаю, что, возможно, клиент не может взаимодействовать с файлами cookie. –

+0

Я думаю, что многие люди согласятся с вами. Но требование авторизации для вызова службы означает, что вам нужно передать какой-то маркер вместе с сервером. Данные Auth, подобные этому, являются действительно метаинформацией для вашей службы, а файлы cookie предоставляют хороший способ передать эту информацию на сервер, не загромождая ваш служебный интерфейс. Я уверен, что другие будут со мной не соглашаться, но я думаю, что это хороший компромисс. – Japple

+0

Большое спасибо @Japple, ваши ответы мне очень помогли, я предлагаю своим куки-файлам или реализации OAuth (или что-то в этом роде). –

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