У меня есть приложение ASP.NET и dll, которое расширяет IHttpModule. Я использовал метод ниже, чтобы сохранить переменные сеанса в httpcontext через
public class Handler : IHttpModule,IRequiresSessionState
{
public void Init(HttpApplication httpApp)
{
httpApp.PreRequestHandlerExecute += new EventHandler(PreRequestHandlerExecute);
}
public void PreRequestHandlerExecute(object sender, EventArgs e)
{
var context = ((HttpApplication)sender).Context;
context.Session["myvariable"] = "Gowtham";
}
}
и на моей странице asp.net Default.aspx я использовал код для извлечения значения как
public partial class _Default : System.Web.UI.Page, IRequiresSessionState
{
protected void Page_Load(object sender, EventArgs e)
{
String token = Context.Session["myvariable"].ToString();
}
}
Я получаю ответ об ошибке как
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Чтобы убедиться, что переменные хранятся в сеансе, я перепроверил следующий метод в обработчике класса после сохранения значения в сеансе как
string ss = context.Session["myvariable"].ToString();
он хорошо выполнен и получил значение из сеанса.