Почему cookie являются нераспознанными, когда на ссылку нажимают из внешнего источника (т.е. Excel, Word, и т.д. …)

Если индекс перечисления основан на 0, вы можете поместить имена в массив char * и проиндексировать их с помощью значения перечисления.

61
задан myroslav 29 April 2010 в 11:25
поделиться

3 ответа

Это связано с тем, что MS Office использует компонент Hlink.dll для поиска, если ссылка является документом Office или чем-то еще. MS Office рассчитывает открыть документ, связанный с документами, без помощи внешнего браузера (с использованием компонента Hlink.dll в IE6).

Если файл cookie сеанса защищает веб-сайт, Hlink, естественно, перенаправляется на страницу входа и, достигнув HTML-страницы, не может «понять», открывает ее во внешнем браузере. Обратите внимание, что он открывает не исходный URL (ожидаемое поведение), а результат перенаправления, даже если это было перенаправление 302.

У Microsoft есть эта ошибка в неподдерживаемом компоненте (Hlink.dll), вместо того, чтобы распознать ошибку, они перекладывают ее на нашу голову (пытаясь убедить нас, что это недостаток системы единого входа, которую мы используем, т.е. сессионные куки) и отказываются ее обновлять. Он предлагает обходной путь , который отключает функцию поиска в MS Office:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
  Office\9.0\Common\Internet\ForceShellExecute:DWORD=1

Или предлагает нам обходной путь на стороне сервера, чтобы избежать перенаправления HTTP и перейти на перенаправления Javascript или перенаправления META REFRESH (то есть, чтобы Hlink получал текст / html по исходному URL-адресу и запустить внешний браузер для ее обработки).

77
ответ дан 24 November 2019 в 17:11
поделиться

Решение NGINX ниже:

if ($http_user_agent ~* Word|Excel|PowerPoint|ms-office) {
    return 200 '<html><head><meta http-equiv="refresh" content="0"/></head><body></body></html>';
}

можно поместить его в server или location блок. Работы как очарование.

0
ответ дан 24 November 2019 в 17:11
поделиться

Я подозреваю, что дело в том, как вы устанавливаете файлы cookie.

Из-за того, как был создан Интернет, example.com не рассматривается как тот же домен, что и www.example.com ; следовательно: вы можете войти в систему на www.example.com и не войти в систему на example.com .

Другими словами, проверьте URL-адрес в своем файле word или excel - это тот же домен, что и вы вошли в систему в своем браузере?

Есть два исправления / решения проблемы несогласованности этого файла cookie: {{1 }} 1. перенаправлять всех, кто пытается загрузить ваш сайт без www. на одну страницу с www. (или наоборот), или 2. при установке файла cookie обязательно укажите аргумент домена как «.example.com». Первая точка указывает, что файл cookie должен быть действителен также на всех поддоменах этого домена.

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

Надеюсь, это поможет.

-2
ответ дан 24 November 2019 в 17:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: