我们有一个(较旧的)网站,该网站使用MiniProfiler
来确定页面加载,并且此功能不仅用于调试模式,而且在以管理员身份登录时也用于实时网站。
如果未以管理员身份登录,MiniProfiler
JavaScript将不会执行,因此不会在左上角呈现页面加载概述。
但是,X-MiniProfiler-Ids
仍在HTTP Header
中,这意味着即使没有可视化,每个请求的配置也已完成。
这样做的原因是必须在MiniProfiler
不可用的Application_BeginRequest
的{{1}}函数中启动Global.asax
,这是我们保留用户信息的地方。因此,由于我们没有用户信息来确定是否应执行概要分析,因此概要分析是针对每个请求(针对每个用户)完成的,但无法可视化。
我试图通过以其他方式获取存储在Session
中的用户信息来解决此问题,但是我发现的解决方案仍然为我提供了Session
引用。
即使未执行JavaScript文件,将null
放在X-MiniProfiler-Ids
中也会构成暴露威胁吗?对每个请求使用HTTP header
时,性能会受到损失吗?
我尝试了以下解决方案来获取MiniProfiler
变量:
Session
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (HttpContext.Current.Session["userinfo"] != null)
{
MiniProfiler.Start();
}
}
在两种情况下,protected void Application_AcquireRequestState(object sender, EventArgs e)
{
if (HttpContext.Current.Session["userinfo"] != null)
{
MiniProfiler.Start();
}
}
均为空。