Если индекс перечисления основан на 0, вы можете поместить имена в массив char * и проиндексировать их с помощью значения перечисления.
Это связано с тем, что 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-адресу и запустить внешний браузер для ее обработки).
Решение 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
блок. Работы как очарование.
Я подозреваю, что дело в том, как вы устанавливаете файлы 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-адрес с той же структурой домена, что и вы вошли в систему.
Надеюсь, это поможет.