Я заметил что, когда на ссылку нажимают внешне от веб-браузера, такой как от Excel или Word, что мои сеансовые куки являются первоначально нераспознанными, даже если ссылка открывается на новой вкладке того же окна браузера.
Браузер заканчивает тем, что распознал свой cookie в конечном счете, но я озадачен относительно того, почему тот начальный канал от Excel или Word не работает. Сделать это еще более сложным, нажимая на ссылку хорошо работает от Outlook.
Кто-либо знает, почему это могло бы происходить? Я использую Платформу Зенда с PHP 5.3.
Решение 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
блок. Работы как очарование.
Вот пример фиксации с помощью 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);
}
}