Kentico开展页面级别活动

时间:2015-03-31 14:04:22

标签: events kentico

我们正在Kentico以外的数据库中创建webevents。然后,这些webevents用于企业报告。我需要在Kentico项目中实现相同的功能。

  1. 是否有一个事件可以在页面加载后触发,以便我可以在登录时创建包含页面名称和用户信息的Web事件。

  2. 我过去也看到过,有了事件,Request和Session对象都不可用。但是,HTTPContext.Current可用。我需要Request和Session对象。

  3. 我们正在使用 Kentico版本7.0.92并拥有门户网站模板网站。

    现在,我不想使用门户模板页面来创建事件,因为此代码对每个页面请求执行多次。

    基本上,我对PageName,Session和Request对象感兴趣。

    我环顾四周Kentico 7 documentation。看起来我们有CMSRequestEvents但无法找到示例代码。

    更新    看起来缺少的部分是CMSContext class。现在只是尝试为CMSRequestEvents找到正确的事件,其中我有Session对象可用。

1 个答案:

答案 0 :(得分:2)

我建议通过以下方式修改Kentico\CMS\Global.asax.cs

public override void Init()
{
    base.Init();
    CMSRequestEvents.AcquireRequestState.After += AcquireRequestState_After;
}

void AcquireRequestState_After(object sender, EventArgs e)
{
    // Do your stuff...
}

到那时HttpContext.Current.Session should already be initialized。可以从HttpContext.Current.Request检索页面名称,该名称永远不应为空。