首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kentico 11在会话结束时访问会话变量

Kentico 11在会话结束时访问会话变量
EN

Stack Overflow用户
提问于 2022-02-09 20:39:10
回答 1查看 57关注 0票数 0

我们正在尝试访问会话结束时的会话变量。我们创建了一个名为ApplicationSessionEventsHandlerModule的新模块,并添加了一个SessionEnd_Execute处理程序。

但是,Kentico SessionHelper类不能工作,System.Web.HttpContext.Current.Session也不能工作。建议如何访问会话结束时的会话变量?见代码:

代码语言:javascript
复制
  public class ApplicationSessionEventsHandlerModule : Module
    {
    public ApplicationSessionEventsHandlerModule() :
        base("ApplicationSessionEventsHandlerModule")
        {
        }

    protected override void OnInit()
        {
        base.OnInit();
        ApplicationEvents.SessionStart.Execute += SessionStart_Execute;
        ApplicationEvents.SessionEnd.Execute += SessionEnd_Execute;
        }

    private void SessionEnd_Execute(object sender, EventArgs e)
        {

        if (SessionHelper.SessionIsAvailable)
            {
            if (SessionHelper.GetValue("UserDetails") != null)
                {
               //Do stuff
                    }
                }

            }


    private void SessionStart_Execute(object sender, EventArgs e)
        {

        if (SessionHelper.GetValue("UserDetails") != null)
            {
          //do stuff
            }
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2022-02-10 17:45:01

参考链接- https://docs.xperience.io/k11/custom-development/handling-global-events/reference-global-system-events#ReferenceGlobalsystemevents-ApplicationEvents

请试以下几点-

  1. 在\App_Code\

下创建全局文件夹

  1. 使用以下代码片段在全局文件夹下创建ApplicationSessionEventsHandler.cs文件,然后尝试-

使用CMS.Base;使用CMS.DocumentEngine;使用CMS.Helpers;使用CMS.Membership;ApplicationSessionEventsHandler公共部分类CMSModuleLoader {公共类ApplicationSessionEventsHandler : CMSLoaderAttribute { public覆盖void (){ ApplicationEvents.SessionEnd.Execute += SessionEnd_Execute;ApplicationEvents.SessionStart.Execute += SessionStart_Execute;SessionStart_Execute(对象发送方,System.EventArgs e) { if (SessionHelper.GetValue("UserDetails") != null) { //do }}私有空洞SessionEnd_Execute(对象发送方,System.EventArgs e) { if (SessionHelper.SessionIsAvailable) { if (“UserDetails”) != null) { //Do }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71056403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档