SPContext в приемнике событий (PortalSiteMapProvider) - PullRequest
2 голосов
/ 08 октября 2009

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

1 Ответ

2 голосов
/ 16 ноября 2011

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

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 от этого.

...