Как сделать Ajax запросы в ASP.NET без полной отправки формы?

Проблема с Ajax запросами в ASP.NET

Работаю над функционалом, который должен отправлять Ajax запросы каждые несколько минут пока пользователь находится на странице. Использую ASP.NET 2.0 с возможностью подключения Ajax расширений для этой версии.

Требования к функционалу

  • Не нужно обновлять DOM элементы до, во время или после запроса
  • Не требуется получать данные со страницы, только cookies и один ID параметр
  • Хочу вызывать только один метод на сервере, без лишних действий

Вопросы

Есть ли простой способ сделать JavaScript Ajax вызов к ASP.NET странице без отправки всей остальной информации со страницы? Хочется избежать полного постбека если это возможно.

Также интересует - как лучше передать данные в IHttpHandler? Через параметры запроса или POST данные? Нужно передать только один ID, но хочется сделать так чтобы обычные пользователи не могли легко получить доступ к этому обработчику напрямую или повторять запросы.

// Примерно такой обработчик планирую использовать
public class DataHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        string userId = context.Request["uid"];
        // обработка запроса
    }
}

Какой подход будет наиболее безопасным и эффективным?

У меня была такая же задача! Делал через XMLHttpRequest к ashx файлу - работает отлично. POST лучше GET’а для безопасности. От левых запросов спасают токены или проверка рефералов. Как часто будешь запросы слать?

В ASP.NET 2.0 попробуй PageMethods - добавь WebMethod в code-behind и вызывай через JavaScript. Не забудь включить enablePageMethods в ScriptManager. Или используй IHttpHandler как в твоем примере, но добавь проверку Session.SessionID от ботов. POST через XMLHttpRequest надежнее GET параметров.