从代码中我可以确定当前请求的一瞥是否有效?

时间:2013-10-18 13:39:06

标签: glimpse

我想添加一些自定义插件来瞥见。然而,我想要进行的分析是昂贵的,所以我只想在为当前请求打开glimpse id时执行此操作。我可以在代码中访问一个属性,告诉我当前是否有瞥见。

类似的东西:

if(GlimpseConfig.IsGlimpseActive)
{

} 

1 个答案:

答案 0 :(得分:2)

首先,如果你像custom tab那样为Glimpse创建一个插件,那么只有在给定请求的Glimpse处于活动状态时,才会向您的标签询问数据。

所以要明确的是,如果您想在标签中进行上述检查,那么这是不必要的,因为Glimpse不会首先打电话给您。但是,如果您正在讨论启用/禁用某些分析代码,这些代码将由您的自定义选项卡访问并且可能很昂贵,那么我认为检查可能确实有用。不幸的是,如果没有Glimpse内部的某种滥用,目前无法做到这一点。

您的问题似乎与this question具有相同的要求,因此我不打算在此处粘贴相同的答案,但我会粘贴代码示例以获得此答案的完整性。

但总之,如果您记住无法保证这是否会在即将发布的版本中继续有效,您可以执行以下操作,但请查看other question以获取更多详细信息。

public static class CurrentGlimpseStatus
{
    private const string GlimpseCurrentRuntimePolicyKey = "__GlimpseRequestRuntimePermissions";

    public static bool IsEnabled
    {
        get
        {
            RuntimePolicy currentRuntimePolicy = RuntimePolicy.Off;
            if (System.Web.HttpContext.Current.Items.Contains(GlimpseCurrentRuntimePolicyKey))
            {
                currentRuntimePolicy = (RuntimePolicy)System.Web.HttpContext.Current.Items[GlimpseCurrentRuntimePolicyKey];
            }

            return !currentRuntimePolicy.HasFlag(RuntimePolicy.Off);
        }
    }
}