У меня есть логика, которая изменяет файлы cookie в методе EndRequest
, и это отлично работает в WebForms и MVC .Изменения в Cookie, внесенные в EndRequest, не отправляются в Response
Но я только что обнаружил, что он не работает в WebApi, хотя он выглядит так, как должен.
Когда я вызываю метод WebApi MyMethod
, если метод устанавливает cookie, я вижу его в ответе. Но даже если EndRequest
делает огнь после MyMethod
и делает набор необходимого печенье, обновленный печенье не получить посланный в запросе. Похоже, что вы не можете изменить файлы cookie ответов в EndRequest
, но я не могу понять, почему и что с этим делать.
Может ли кто-нибудь сказать мне, что здесь происходит, и что с этим делать, чтобы я мог использовать свою логику без явного вызова ее в каждом веб-методе? Если мне нужно изменить ответ, каков правильный способ зафиксировать намерение EndRequest
в WebApi?
[1] Это не имеет прямое отношение к вопросу, но причина в том, чтобы я мог защитить печенье от подделки путем хеширования значений печенья и добавления hash
ключа к печенью. Я вызываю логику для защиты файлов cookie от EndRequest
, так что в своем коде приложения я могу делать все, что мне нужно, с помощью куки-файлов и защищать все, как только я знаю, что все сделано с изменениями в содержании файлов cookie.
Спасибо, я попробовал это, и она работала отлично. Но почему WebApi вызывает EndRequest после того, как он уже отправил ответ? –
'EndRequest' - это последнее событие в конвейере, которое должно быть выполнено. Он вызывается после отправки ответа. Вы не можете использовать его для управления ответом. Чаще всего используются протоколирование и обработка транзакций. –
Но тогда почему это работает, чтобы модифицировать файлы cookie в EndRequest при использовании WebForms или MVC? У меня только эта проблема в WebApi. –