Как регистрировать междоменный трафик в интрасети (включая имя пользователя) с помощью HTTPHandler? - PullRequest
0 голосов
/ 14 ноября 2008

Я пытаюсь зарегистрировать активность пользователей для пары внутренних веб-сайтов, а также для наших сайтов SharePoint. Я использую JavaScript для вызова (GET) страницы Ashx (HTTPHandler), которая возвращает невидимый GIF 1x1. HTTPHandler получает URL-адрес, информацию браузера, IP-адрес, действие (отправленное как QueryString) и (часть, с которой я борюсь) имя пользователя. Имя пользователя собирается с помощью context.User.Identity в HTTPHandler, а в IIS 6 включена «Интегрированная проверка подлинности Windows». Вот часть регистрации js:

    logAction: function(action) {
    try {
        var i = new Image(1, 1);
        i.src = "http://intranet/tracker/urchin.ashx?action=" + action;
    } catch (e) {
        //alert(e);
    }

Используя jQuery, я добавил обработчики для нажатия кнопок, ссылок и «выгрузки», которые вызывают файл Ashx и пропускают выполненное действие. (Он также вызывается при загрузке страницы).

Все это работало отлично, или я так подумал ... Оказалось, что я пропустил событие начальной загрузки страницы, когда пользователь впервые открыл одну из страниц, если она не находилась в том же домене, что и HTTPHandler. , Используя Fiddler , я мог видеть цикл NTLM для страницы (401.2, 401.1, 200), но только 401.2 для ashx. Похоже, что браузер не будет отправлять учетные данные пользователя, когда вызов HTTPHandler является междоменным. Следующая страница, которую посещает пользователь, регистрируется правильно, но эта первая страница не регистрируется.

Вот наши домены:

Что-то не так с моим дизайном, или это просто безопасность браузера? Спасибо!

1 Ответ

1 голос
/ 14 ноября 2008

Возможно, вы захотите увидеть это: http://developer.yahoo.com/javascript/howto-proxy.html

Возможно, это не совсем понятно о вашей проблеме (на которую я не могу дать вам точный технический ответ прямо сейчас), но приведенная выше ссылка предупредит вас о проблемах / проектных решениях / соображениях безопасности, которые вы должны быть в курсе того, чего вы пытаетесь достичь. Вы правы, есть проблема безопасности браузера, о которой я много знаю.

Также выполните поиск в Google для междоменного прокси ajax. Хорошего вам чтения!

Удачи!

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