ASP.NET аутентификация для однопользовательского сайта

#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.