Безопасность с ASP.NET Webservices с использованием jQuery - PullRequest
2 голосов
/ 09 июня 2009

Я всегда использовал Scriptmanager для обработки всех вызовов AJAX, но я начинаю расширяться и играю с использованием jQuery и JSON для использования веб-службы ASP.NET 3.5. Я использую стандартные вызовы jQuery, как вы можете видеть ниже, и это прекрасно работает. Я беспокоюсь о безопасности и о том, как сделать так, чтобы я не открывал двери, отказавшись от менеджера сценариев. Любая информация приветствуется. То, что я обнаружил в сети, больше относится к реализации, чем к безопасности.

$.ajax({
    type: "POST",
    url: "Webservices/Service.asmx/HellowWorld",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
        alert(msg.d);
    }
});

ОБНОВЛЕНИЕ: Удивление этого в надежде, что кто-то может предоставить некоторую информацию.

Я хочу разрешить только аутентифицированным пользователям доступ к этой службе. Я использую службы членства ASP.NET в MVC и хочу, чтобы мои вызовы jQuery AJAX (JSON) выполнялись аутентифицированным пользователем. Любая информация приветствуется.

Ответы [ 3 ]

0 голосов
/ 08 сентября 2010

В этом вопросе я искал, как обращаться с безопасностью при вызове веб-службы. Ответ: нет способа автоматически аутентифицировать удаленного пользователя, не передавая некоторую форму данных аутентификации с помощью is.

В этом сценарии я передаю зашифрованный токен, содержащий данные, которые я затем использую для аутентификации пользователя. Токен предоставляется им для прохождения.

Если есть лучший / более безопасный способ сделать это, я буду открыт.

0 голосов
/ 18 августа 2011

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

        MembershipUser u =Membership.GetUser(HttpContext.Current.User.Identity.Name);
    if (u.IsOnline)
    {

        //do work
    }

Вероятно, не лучший способ решить проблему, и это может быть грязно. Но это работает для меня. Что было бы идеально, если бы вы могли проверить HttpContext при вызове, а не внутри службы, но я не смог выяснить, как это сделать.

0 голосов
/ 09 июня 2009

С точки зрения безопасности, нет никакой внутренней разницы между использованием ScriptManager для генерации клиентских прокси для вызова веб-служб или непосредственным использованием jQuery. Оба они в конечном итоге генерируют HTTP-запросы к серверу с полезными данными в виде простого текста.

Если вас интересует безопасность сообщений и / или транспорта, вам необходимо рассмотреть использование SSL для шифрования транспортного канала между клиентом и сервером.

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