получите сессию от aspx страницы в клиенте httphander класс

у меня есть aspx страница и обычай httphandler в той же самой области. На aspx странице (test.aspx), я использую

<%@ Page Language="C#" %>
<%

    HttpContext.Current.Session["UserID"] = "ABC";

%>

создать переменную сеанса, но когда я хочу назвать переменную в httphandler

public class JpgHttpHandler : IHttpHandler, IRequiresSessionState
{
    public void ProcessRequest(HttpContext context)
    {
         response.Write(HttpContext.Current.Session["UserID"].ToString());
    }
}

есть сообщение об ошибке когда я пуговица httphandler:

Object reference not set to an instance of an object.

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.

как я могу назвать сессию от httphandler?

спасибо

Update

измененный код на

if (context.Session["UserID"] != null)
response.Write(context.Session["UserID"].ToString());

странно, когда я использую IP, чтобы получить доступ к веб-странице, это работает. Но я использую доступ доменного имени страница, он показывает бланк

1
добавлено отредактировано
Просмотры: 2
nl ja de
попытайтесь получить сессию от другой aspx страницы, как я исправляю его?
добавлено автор hkguile, источник
Хорошо, это работает теперь ~
добавлено автор hkguile, источник
вы получаете другие ценности сессии? Поскольку использовать переменную сеанса IRequiresSessionState , который вы используете
добавлено автор शेखर, источник

2 ответы

Всегда проверяйте, что сессия пустая или нет.

//Check session variable null or not
if (HttpContext.Current.Session["UserID"] != null)
{
    //Retrieving User ID from Session
}
else
{
 //Do Something else
}
1
добавлено

Сначала используйте контекст и вторая проверка если ее пустой указатель перед использованием это

public class JpgHttpHandler : IHttpHandler, IRequiresSessionState
{
    public void ProcessRequest(HttpContext context)
    {
         if(context.Session["UserID"] != null)
             response.Write(context.Session["UserID"].ToString());
    }
}

Если укладчик не видел, что сессия, вероятно, потому что у вас нет установки правильной печенье, и сессия - основа на печенье. Установите область на линии печенья на web.config, с www. как:


0
добавлено