#asp.net #web-services #authentication #jquery
#asp.net #веб-службы #проверка подлинности #jquery
Вопрос:
Я создал сайт-галерею. Я использую ajax-запросы со стороны клиента к веб-сервисам сервера следующим образом:
var executeService = function(params, url, callbackSuccess, callbackError, isCache) {
$.ajax({
type: "POST",
url: url,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: params,
success: callbackSuccess,
error: callbackError,
cache: isCache
});
};
и это:
[WebMethod]
public string GetImagesByCategory()
{
var imageList = new List<JSONGallery>();
//...
return imageList.ToJSON();
}
Я хочу разработать административную страницу. На этой странице я хочу управлять содержимым сайта. Только один пользователь будет иметь доступ к этой странице и к методам администрирования веб-сервиса (добавление, удаление и т. Д.). Какой тип аутентификации будет предпочтительнее для меня?
Я бы использовал аутентификацию в формах, но как я могу контролировать доступ к веб-сервису?
Спасибо.
Ответ №1:
Вы могли бы использовать только проверку подлинности формы для обоих, если вы ограничили доступ только для прошедших проверку подлинности пользователей (и, очевидно, службы находятся на одном сайте). Вы можете установить это в web.config
с:
<authentication mode="Forms">
<forms loginUrl="~/login.aspx" protection="All" timeout="2880" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
Таким образом, только пользователи, вошедшие в систему, будут иметь разрешение на запуск службы.
Если у вас есть другие страницы / каталоги, которые вы хотите сделать доступными, вы можете добавить правило авторизации, чтобы разрешить открытый доступ к этим элементам, таким как файлы CSS или изображения.
<location path="assets">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
Комментарии:
1. Спасибо, кажется, это правильный путь. Но я еще не тестировал доступ к веб-сервису.
Ответ №2:
Вы можете использовать проверку подлинности формы для веб-страниц администратора и базовую проверку подлинности для веб-служб, вы можете включить базовую проверку подлинности на веб-сервисах IIS.