SharePoint Foundation 2010 中的事件模拟

上次修改时间: 2010年4月8日

适用范围: SharePoint Foundation 2010

在 Microsoft SharePoint Foundation 2010 中,提供事件模拟的能力已大大增强。

事件模拟

在早期版本的 SharePoint Foundation 中,请求处理过程中发生的事件在其操作引发此事件的用户的上下文中运行。通常,这是可接受的;此外,如果这样引发了问题,则开发人员既可以恢复使用系统帐户上下文,也可以创建一个新的 SPSite 对象供特定用户使用。

例如,在某些情况下,当活动工作流具有以提升的权限运行的代码时,此代码将在系统帐户上下文中运行。但在这种情况下,当事件接收器代码需要使用源用户的凭据运行时,SharePoint Foundation 2010 允许撤消恢复操作。

当处理此类事件的代码执行时,尽管理想状况下应会有"已取消模拟"或"已取消恢复"事件,但是为了保持后向兼容性,在 SharePoint Foundation 2010 中并未引入此行为。相反,我们提供发起用户的标识 (ID),并让事件接收器实施者进行响应(如果合适)。

SharePoint Foundation 2010 还对 SPEventPropertiesBase 类引入了一个名为 OriginatingUserToken 的新属性,该属性可返回源用户的 ID。事件代码可根据 ID 检查此用户,并且通过该源用户的令牌使用模拟的网站集,它还可以执行可能产生意外结果的操作。

请参阅

概念

SharePoint Foundation 2010 的事件模型改进