PersonalizationProvider.DetermineInitialScope 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
public:
virtual System::Web::UI::WebControls::WebParts::PersonalizationScope DetermineInitialScope(System::Web::UI::WebControls::WebParts::WebPartManager ^ webPartManager, System::Web::UI::WebControls::WebParts::PersonalizationState ^ loadedState);
public virtual System.Web.UI.WebControls.WebParts.PersonalizationScope DetermineInitialScope (System.Web.UI.WebControls.WebParts.WebPartManager webPartManager, System.Web.UI.WebControls.WebParts.PersonalizationState loadedState);
abstract member DetermineInitialScope : System.Web.UI.WebControls.WebParts.WebPartManager * System.Web.UI.WebControls.WebParts.PersonalizationState -> System.Web.UI.WebControls.WebParts.PersonalizationScope
override this.DetermineInitialScope : System.Web.UI.WebControls.WebParts.WebPartManager * System.Web.UI.WebControls.WebParts.PersonalizationState -> System.Web.UI.WebControls.WebParts.PersonalizationScope
Public Overridable Function DetermineInitialScope (webPartManager As WebPartManager, loadedState As PersonalizationState) As PersonalizationScope
参数
- webPartManager
- WebPartManager
管理个性化设置信息的 WebPartManager。
- loadedState
- PersonalizationState
个性化设置状态信息。
返回
一个 PersonalizationScope,它指示当前个性化设置范围是 User 还是 Shared。
例外
webPartManager
为 null
。
与 webPartManager
关联的页为 null
。
注解
此方法确定当前范围应为 Shared 还是 User,给定对 WebPartManager 控件的引用,以及个性化设置生命周期早期已加载的个性化设置状态信息。 实例将此信息用于 WebPartPersonalization 后续个性化相关任务。
以下规则用于确定个性化设置范围:
最初假定范围为 User。
如果当前执行的用户帐户未通过身份验证,则范围设置为 Shared。
如果当前执行的用户帐户已经过身份验证,则按优先顺序进行其他处理:
如果页面处于回发模式,则页面请求包含以前呈现页面的范围信息。 如果该范围信息指示 Shared 已使用范围,则该范围计算结果为 Shared。
例如,如果当前正在执行的页面已将控制权从另一页 (转移到该页,则由于调用 Transfer 方法而发生了控制权转移;请注意,对于跨页发布) 不会发生此特定检查,并且如果以前执行的页面具有实例,则范围设置为上WebPartManager一WebPartManager个实例中的
Personalization.Scope
属性的值。如果未满足上述条件,则范围计算结果为当前WebPartManager控件的 InitialScope 属性的值。
在进行前面的评估后,如果范围计算为 Shared 范围,则会发生以下处理:
如果当前正在执行的用户帐户具有 EnterSharedScopeUserCapability 功能,则范围仍设置为 Shared。
如果当前正在执行的用户帐户没有 EnterSharedScopeUserCapability 此功能,则作用域将重置为 User。
如果之前所有范围评估的结果为 Shared,则此结果将作为隐藏字段存储在当前正在执行的页面上。 这是页面在后续回发期间重播范围评估的机制。