Похоже, что контекстный параметр asp: net подстановочный метод управления пропускает текущий сеанс после вывода страницы в кеш.Есть ли способ получить доступ к текущей сессии изнутри элемента управления замещением?
Помимо получения содержимого элемента управления замещением через ajax или с помощью какого-либо другого метода хранения данных, которые в противном случае были бы в сеансе (например, базы данных), есть ли что-нибудь еще, что я могу сделать?
Есть ли обходной путь для использования родной сессии asp.net в управлении замещением?
<asp:Substitution ID="myid" MethodName="method1"></asp:Substitution>
public static string method1(HttpContext context) <-- [1]
[1] --- conext.session является недействительным после страница кэшируется
Сессия недоступна (как вы отметили в своем ответе ниже, что правильно - вы должны пометить его Ответил). Однако 'context.User.Identity' (при условии, что вы используете поставщик членства) _is_, поэтому вы можете получить от него базовое имя пользователя или идентификатор; то вы можете загрузить соответствующие данные сеанса. Но только если вы храните его в доступном месте, например, в базе данных, которая может использовать имя пользователя в качестве ключевого слова. Но если у вас есть динамически сгенерированные данные, которые вы сохраняете в сеансе, но не где-либо еще, тогда он не будет доступен. –