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

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

Браузер заканчивает тем, что распознал свой cookie в конечном счете, но я озадачен относительно того, почему тот начальный канал от Excel или Word не работает. Сделать это еще более сложным, нажимая на ссылку хорошо работает от Outlook.

Кто-либо знает, почему это могло бы происходить? Я использую Платформу Зенда с PHP 5.3.

60
задан 29 April 2010 в 15:25

2 ответа

Решение 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
ответ дан 1 November 2019 в 10:07

Вот пример фиксации с помощью dotnet базового промежуточного программного обеспечения:

public class MicrosoftOfficeLinksHandlingMiddleware
{
    private static readonly Regex MsUserAgentsRegex = new Regex(@"[^\w](Word|Excel|PowerPoint|ms-office)([^\w]|\z)");
    private readonly RequestDelegate _next;

    public MicrosoftOfficeLinksHandlingMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task Invoke(HttpContext context)
    {
        string userAgent = context.Request.Headers["User-Agent"].FirstOrDefault();

        if (userAgent != null && MsUserAgentsRegex.IsMatch(userAgent))
        {
            // just return an empty response to the office agent
            return;
        }

        await _next(context);
    }
}
1
ответ дан 1 November 2019 в 10:07

Другие вопросы по тегам:

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