Писане на бисквитка от обект ASP.Net HTTPHandler - Page.Response?

Създавам HTTP манипулатор, който слуша за извиквания към конкретен тип файл и го обработва съответно. Моят HTTP Handler слуша за .bcn файлове, след това записва бисквитка на компютъра на потребителя и изпраща обратно изображение... това ще се използва в рекламни банери, така че потребителят да бъде маркиран като виждащ банера, и след това можем да предложим специални сделки когато посетят нашия сайт по-късно.

Проблемът, който имам, е получаването на достъп до обекта Page... разбира се HTTPHandler всъщност не е страница и тъй като обектът Response живее в обекта Page, не мога да получа достъп до него, за да напиша бисквитката.

Има ли начин да се заобиколи това или трябва да се върна обратно към използването на стандартна aspx страница, за да направя това?

Благодаря много.. Грег


person Jeeby    schedule 25.09.2008    source източник


Отговори (3)


Можете да получите достъп до обекта Response от обекта HttpContext, предаден на метода ProcessRequest от IHttpHandler. Това е същият обект, изложен от Page.Response.

person ckramer    schedule 25.09.2008

на метода ProcessRequest(), дефиниран в IHttpHandler, се предава препратка към HttpContext. Този обект HttpContext ще има свойство, наречено Response и Request, което можете да използвате.

person cruizer    schedule 25.09.2008

а, да... много благодаря cKramer :)

Работният код е:

HttpContext.Current.Response.Cookies.Add(cookie);
person Jeeby    schedule 25.09.2008