2015-03-31 19 views
0

我们在Kentico以外的数据库中创建webevents。这些web事件然后用于企业报告。我需要在Kentico项目中实现相同的功能。Kentico攻击页面级别事件

  1. 有没有可以在页面后触发事件已加载,这样如果登录我可以创建我的页面名称和用户信息的网络事件。

  2. 我也看到在过去的那个对于事件,Request和Session对象不可用。但是,HTTPContext.Current可用。我需要Request和Session对象。

我们使用Kentico版本7.0.92,并拥有了门户模板网站。

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

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

我看了看Kentico 7 documentation。看起来我们有CMSRequestEvents,但一直未能找到示例代码。

更新: 看起来像缺少的一块是CMSContext class。现在只需要找到CMSRequestEvents的正确事件,其中有Session对象可用。

回答

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.Sessionshould already be initialized。可以从HttpContext.Current.Request检索页面名称,该名称不能为空。

+0

再次感谢您的信息。 – 2015-04-02 20:42:47