【发布时间】:2014-06-13 15:52:28
【问题描述】:
我喜欢 Glimpse,但只有当我对它要告诉我的内容感兴趣时。我有一个 glimpse 角色,我可以打开和关闭它以使 glimpse 消失(参见下面的代码),但我真正想要的是能够在我的 global.asax 中启用它时打开和关闭它。我试过去 site.com/glimpse.axd 并设置“关闭一瞥”,但在下一页刷新时它又回来了。
我错过了什么?
public class GlimpseSecurityPolicy : IRuntimePolicy
{
public RuntimePolicy Execute(IRuntimePolicyContext policyContext)
{
var httpContext = policyContext.GetHttpContext();
if (!httpContext.User.IsInRole("GlimpseUser"))
{
return RuntimePolicy.Off;
}
return RuntimePolicy.On;
}
public RuntimeEvent ExecuteOn
{
get { return RuntimeEvent.EndRequest; }
}
}
在我的 Web.Config 中:
<glimpse defaultRuntimePolicy="On" endpointBaseUri="~/Glimpse.axd">
<runtimePolicies>
<ignoredTypes>
<add type="Glimpse.AspNet.Policy.LocalPolicy, Glimpse.AspNet" />
<add type="Glimpse.Core.Policy.ControlCookiePolicy, Glimpse.Core" />
</ignoredTypes>
</runtimePolicies>
【问题讨论】:
-
您能否为“在我的 global.asax 中启用”和“下一页刷新它又回来了”的意思添加更多上下文。因为即使没有您的自定义安全策略(看起来不错),在按下“关闭 Glimpse”按钮后,也不应收集任何数据,也不应显示 Glimpse 面板。几个月前我写了一封blog post,解释了这些运行时策略是如何在运行时应用的,也许这可能会对你有所帮助。
-
我正在展示我的 global.asax,这样评论就没有必要了。问题是在运行此代码并且用户处于 GlimpseUser 角色时,我似乎无法让 Glimpse 消失。当我浏览到 glimpse.axd 页面时,单击按钮关闭 glimpse,然后刷新页面,glimpse 仍然显示在底部,就好像我没有关闭它一样。
-
关于 global.asax,我不太关注那里,因为我在这里看到的唯一内容是 GlimpseSecurityPolicy。您是否有任何机会在 CookieControlPolicy 的 web.config 中有一个 ignoreType 条目,这会导致忽略 Turn Glimpse Off 操作?您是否启用了 Glimpse 日志记录并注意到日志中有一些奇怪的东西?
-
我用我的 web.config re Glimpse 中的内容更新了我的帖子。我的 global.asax 中的其他代码公共类 GlimpseSecurityPolicy” 但 VS 或 resharper 都说它从未使用过(但我并不总是相信)。显然,我是配置方面的初学者,我应该花更多的钱时间阅读和研究它是如何配置的。抱歉很迟钝