2009-10-08 2 views
2

Я пытаюсь написать приемник событий, который использует PortalSiteMapProvider. Без HTTPContext или SPContext INSIDE приемник событий, как бы получить доступ к PortalSiteMapProvider?SPContext в приемнике событий (PortalSiteMapProvider)

+0

Меня больше интересует, как использовать приемник событий без объекта SPContext. Пожалуйста, объясни. –

+0

У вас нет SPContext внутри приемника событий. –

+0

Какой тип мероприятия вы используете? –

ответ

2

Попробуйте это в вашем приемнике событий:

var web = properties.Web;  

HttpRequest request = new HttpRequest(string.Empty, web.Url, string.Empty); 

HttpResponse response = new HttpResponse(new System.IO.StreamWriter(new System.IO.MemoryStream())); 

HttpContext impersonatedContext = new HttpContext(request, response); 

impersonatedContext.Items["HttpHandlerSPWeb"] = web; 

HttpContext.Current = impersonatedContext; 

SPContext context = SPContext.GetContext(impersonatedContext); 

Вы должны быть в состоянии получить SPContext от этого.

Смежные вопросы