CRM 2013本地部署版:登录用户CRM访问区域统计实现方法
Dynamics CRM 2013 核查用户实际访问功能区域的可行替代方案
首先明确你目前使用的recentlyvieweditems方法的核心局限:这类记录属于用户端的最近浏览缓存,存储在每个用户的个人配置表中,仅能追踪用户打开过的实体记录,不会覆盖纯功能页面(比如设置中心、报表门户、工作区首页这类非实体页)的访问行为,且支持用户手动清空,日志完整性没有服务端保障,不适合长期核查场景使用。
以下是经过本地部署验证的可行技术方案:
- 启用平台原生审计能力
这是CRM2013自带的零额外开发能力,配置路径为:设置 > 系统 > 审计 > 审计设置。- 开启全局审计开关后,勾选“用户访问与服务活动”“页面与功能区域访问”两个审计维度,所有访问行为会直接落库到组织数据库的
AuditBase表中。 - 核查时直接关联
AuditBase表与系统实体元数据,通过记录的操作类型、对象类型代码,即可精准匹配用户访问过的具体功能模块、实体表单、Web资源页面,数据存在服务端,用户本地操作不会影响日志完整性,还可以按需配置日志保留周期。 - 注意:审计开启初期会产生小幅性能开销,建议在非业务时段开启,按需关闭非核心实体的审计项,避免日志量过快膨胀。
- 开启全局审计开关后,勾选“用户访问与服务活动”“页面与功能区域访问”两个审计维度,所有访问行为会直接落库到组织数据库的
- 采集IIS站点日志做行为溯源
本地部署的CRM 2013完全承载在IIS站点上,无需修改CRM任何配置,直接读取对应站点的W3SVC访问日志即可完成核查:- CRM2013的功能区域有固定URL路由规则,比如
/Workplace/对应工作区、/Settings/对应系统设置、/Reports/对应报表中心、/SFA/对应销售模块,可通过匹配日志里的访问路径、关联请求中的用户身份标识,还原每个用户实际点开的功能入口。 - 这个方案优势是完全无侵入,只要服务器管理员有权限读取日志即可开展,缺点是需要提前整理好路由路径与功能区的映射规则,无法精准区分用户是主动点菜单进入、还是通过系统跳转被动加载的页面。
- CRM2013的功能区域有固定URL路由规则,比如
- 轻量自定义客户端埋点
如果需要更高粒度的行为记录,可以通过轻量开发实现自定义访问日志上报:- 在CRM的站点地图(SiteMap)配置里,给每个功能区、子菜单节点绑定自定义JS点击事件,当用户主动点击菜单时,通过CRM 2013内置的SOAP服务端点,直接将用户ID、访问功能名称、访问时间写入自定义的
UserAccessLog实体表中。 - 这种方式的日志粒度完全可控,甚至可以区分用户点击的具体按钮、进入的具体功能子页面,比原生审计和IIS日志的精准度更高,仅需要导入包含自定义SiteMap、JS资源的解决方案即可实现,开发量极低。
- 在CRM的站点地图(SiteMap)配置里,给每个功能区、子菜单节点绑定自定义JS点击事件,当用户主动点击菜单时,通过CRM 2013内置的SOAP服务端点,直接将用户ID、访问功能名称、访问时间写入自定义的
补充提醒:不要依赖存在用户端的缓存类记录做行为核查,这类数据随时可能被用户清理、随客户端缓存丢失,所有可靠的核查方案都要基于服务端留存的日志数据。
内容的提问来源于stack exchange,提问作者laksh27
相关产品推荐
相关产品推荐

