2013-03-03 2 views
2

У меня есть служба app.net web api, которая вызывается из приложения веб-форм с использованием jquery. Я использую аутентификацию на основе форм и AuthorizeAttribute, чтобы разрешить доступ к данным только определенным ролям.Подтвердить клиента, вызывающего мой Asp.net WebApi

У меня есть метод на моем веб-сайте api .. Get, который принимает идентификатор, мне не нравится идея, что аутентифицированный пользователь может выработать URL-адрес и просмотреть данные из базы данных. Можно ли проверить клиента, вызывающего веб-api? Так что, если я вызываю веб-api из моего кода jquery, он работает, но если кто-то вводит URL-адрес в браузере, он отказывается от доступа?

Спасибо за помощь .. Веб-апи поразительно! Мне просто нужно приручить аудиторию.

+0

Существует достаточная сумма - google Authorization Web API - http://blog.developers.ba/post/2012/03/03/ASPNET-Web-API-Authorization-using-Tokens.aspx – Prescott

+0

Хорошо, так что используйте токен .. код, показанный на этой странице, показывает, как вы будете проверять токен. Но я не понимаю - как я получаю свой токен в первую очередь (при загрузке страницы моей страницы aspx я добавляю токен к моему ответу как?) и как это безопасно хранится на моей странице aspx и как я использую его в jquery, не подвергая токен миру. –

+0

Это сообщение действительно передает токен, хотя строка запроса. Поэтому я не вижу, как это решает проблему, поскольку вы можете просто отслеживать сетевой трафик и создавать свои собственные URL-адреса, пока токен действителен. –

ответ

0

Вы всегда можете использовать ключ api, который использует jQuery для вызова методов Web API, и иметь MessageHandler для проверки этого ключа (как описано здесь, http://www.strathweb.com/2012/05/implementing-message-handlers-to-track-your-asp-net-web-api-usage/). Тем не менее, я думаю, что метод Web API должен также проверять, чтобы аутентифицированный пользователь имел доступ к данному ID перед возвратом данных.

С уважением, Пабло.

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