У меня есть следующий код, который был в порядке, пока кто-то другой не поместил какой-либо другой код на сайт, который сейчас его портит.
Это мой код:
var existingContext = HttpContext.Current;
var writer = new StringWriter();
var response = new HttpResponse(writer);
var context = new HttpContext(existingContext.Request, response) { User = existingContext.User };
HttpContext.Current = context;
HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Default);
HttpContext.Current.Session["Test"] = "test";
for (Int32 i = 0; i < existingContext.Session.Count; i++)
{
HttpContext.Current.Session.Add(existingContext.Session.Keys[i], existingContext.Session[i]);
}
Идея, стоящая за этим, заключается в том, чтобы иметь возможность захватывать выходные данные представления и отображать его в формате PDF. Теперь моя единственная проблема заключается в том, что когда я возвращаю контекст HttpContext.Current, сеанс становится пустым. Мне нужно иметь возможность инициализировать сеанс, чтобы я мог назначать в него переменные.
Я также добавлю, что это внутри статического класса
public static class ControllerExtensions
Есть какие-нибудь подсказки?