У меня есть настраиваемый объект-участник безопасности, который я установил в global.asax для текущего потока, и все в порядке, нормально никаких проблем.
Однако я просто добавляю функцию динамического изображения, имея страницу, обслуживающую изображение, и всякий раз, когда эта страница динамического изображения загружается, System.Web.HttpContext.Current.Session имеет значение null в global.asax, что не позволяет мне установить безопасность основные как обычные и каскадные проблемы с этого момента.
Обычно сеанс имеет значение null в global.asax только один раз во время сеанса в начале, когда пользователь входит в систему, впоследствии он всегда доступен с этим единственным исключением.
Страница с динамическим изображением загружается, когда браузер встречает изображение на исходной странице, т. Е.
Я предполагаю, что это какой-то аспект того факта, что браузер запрашивает эту страницу, не отправляя с ней учетные данные?
Любая помощь будет принята с благодарностью.





Сессия не имеет ничего общего с тем, вы вошли в систему или нет.
Какое событие вы отменяете, когда хотите получить доступ к сеансу? Сеанс недоступен, пока не будет запущен AcquireRequestState.
Для получения дополнительной информации см .: http://msdn.microsoft.com/en-us/library/9ysfzy8h.aspx
Ради этой проблемы просто игнорируйте всю основную часть бизнеса, фундаментальная проблема заключается в том, что Session имеет значение NULL только для этого одного типа страницы.
Джон, что это за страница? Это aspx? или ашх?
Джон,
Я предполагаю, что вы используете обработчик ashx для обработчика. Если это так, не забудьте унаследовать от IRequiresSessionState, например:
public class Images : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{ }
Если вы не используете ashx, можете ли вы описать, что вы имеете в виду под страницей с динамическими изображениями?
Джош
Привет, Джош, ты сейчас мой любимый человек! :) Нет, я использовал стандартную страницу aspx, потому что все примеры обработчиков, упомянутых с использованием расширения файла и изменений конфигурации, вообще не знали об ashx, пробовали это, и это действительно требовало производной, которую вы упомянули. Прекрасно работает. Ваше здоровье!
Хех потрясающе! Я люблю обработчиков Ashx. Я использовал один для извлечения изображений из базы данных, которая действительно хорошо работает. Я также обнаружил, что если вы выполняете POX Service, то ashx работает очень хорошо.
да, вы правы Это происходит потому, что зависимость объекта может конфликтовать в случае параллельного переноса другой страницы, что может нарушить межсетевой экран между сеансами
в Global.asax.cs Session_Start () и Session_End () вам нужно использовать "this.Session" !! Причина этого в том, что HttpContext доступен только при наличии обрабатываемого запроса. Вот почему вы получаете NULL на HttpContext.Current.Session!
С веб-сайта Microsoft: «Класс HttpContext: инкапсулирует всю специфичную для HTTP информацию об отдельном HTTP-запросе».
Но не расстраивайтесь ... Я тоже влюбился в это! :)
Сессия имеет прямое отношение к моему индивидуальному бизнес-принципу. Проблема заключается в том, что сеанс является нулевым только для этой одной страницы, около 50 или около того других в этом большом приложении не проявляют этой проблемы. Я получаю доступ к сеансу из Application_PostAuthenticateRequest, где обычно это не проблема.