Ответ 1
HttpContext.Current.Session["..."]
HttpContext.Current
получает текущее... ну, Http Context; из которого вы можете получить доступ: сеанс, запрос, ответ и т.д.
Я использую asp.net pagemethods с jQuery.... Как получить значение переменной сеанса внутри статического метода в С#?
protected void Page_Load(object sender, EventArgs e)
{
Session["UserName"] = "Pandiya";
}
[WebMethod]
public static string GetName()
{
string s = Session["UserName"].ToString();
return s;
}
Когда я скомпилирую это, я получаю ошибку:
Ссылка на объект требуется для нестатического поля, метода или свойства "System.Web.UI.Page.Session.get'`
Любое предложение или любая альтернатива?
HttpContext.Current.Session["..."]
HttpContext.Current
получает текущее... ну, Http Context; из которого вы можете получить доступ: сеанс, запрос, ответ и т.д.
Если вы не изменили нить, вы можете использовать HttpContext.Current.Session
, как указано в файле jwwishart.
HttpContext.Current
возвращает контекст, связанный с потоком. Очевидно, это означает, что вы не можете использовать его, например, если вы начали новый поток. Вам также может потребоваться учитывать гибкость потоков - запросы ASP.NET не всегда выполняются в одном потоке для всего запроса. Я считаю, что контекст пропагандируется надлежащим образом, но это что-то иметь в виду.
С другой стороны, я не уверен, будет ли у вас даже сеанс для метода страницы AJAX. Вы можете попробовать, но я бы немного нервничала из-за этого. В идеале вы должны передать всю информацию, которая вам нужна от клиента.
Попробуйте следующее:
HttpContext.Current.Session["UserName"].ToString();