Доступ к защищенной конечной точке REST с помощью JQuery - PullRequest
2 голосов
/ 11 апреля 2009

У меня есть сайт, где участники входят в свою учетную запись (FormsAuth). Я хотел бы настроить службу RESTful, к которой я могу получить доступ, используя jQuery. Я хотел бы защитить эти сервисы, используя тот же FormsAuth.

Каким образом сторонний сайт сможет получить доступ к этим услугам? Им нужно будет передать Принципал / Личность в службу, верно?

Я видел только примеры базовой аутентификации (которую использует Twitter и поддерживает jQuery).

Я очень новичок в WCT / REST, поэтому не уверен, как это сделать.

Ответы [ 2 ]

2 голосов
/ 14 апреля 2009

Важно помнить, что проверка подлинности с помощью форм работает на основе файлов cookie. Когда клиентский браузер отправляет запрос на сервер, он отправляет cookie с каждым запросом. Если серверу требуется определенный файл cookie (ASP.NET делает это обязательным требованием, если вы используете проверку подлинности для определенного URL-адреса), а файл cookie отсутствует, это происходит, когда вы получаете неавторизованную ошибку.

Чтобы получить код jQuery, клиент должен запросить его со страницы хоста, которая может быть страницей ASP.NET, защищенной с помощью проверки подлинности с помощью форм. Это первый шаг - защита доступа к самому коду jQuery. Следующее, что вам нужно сделать, это безопасный доступ к конечной точке RESTful.

Если вы поместите конечную точку .svc (если вы размещаете службу RESTful WCF в IIS) в том же каталоге, что и часть вашего приложения, защищенная проверкой подлинности с помощью форм с помощью параметров Web.config, тогда ASP.NET отклонить запросы к конечной точке .svc до того, как WCF сообщат о запросе. Таким образом, вы можете обернуть свою службу WCF в проверку подлинности с помощью форм без необходимости какого-либо сложного кодирования внутри службы.

Поскольку jQuery при выполнении HTTP-запросов вашей конечной точки делает это в контексте вашего браузера, HTTP-запросы, сделанные из jQuery (при условии, что jQuery был загружен из того же корня, что и ваш сайт, прошедший проверку подлинности с помощью форм) cookie для аутентификации.

0 голосов
/ 12 апреля 2009

Вы можете усложнить это и использовать токен. Flickr является примером такого механизма авторизации.

Теоретически токен действителен столько и очень долго, и вы передаете его в запросах и т. Д. Это не очень RESTy, хотя (ИМХО). Но вы в основном предоставляете один метод, который возвращает токен и, возможно, дату (для запоминания другим приложением), а затем другое приложение использует токен до истечения срока его действия, то есть когда ему нужно запросить новый.

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