У нас есть (более старый) веб-сайт, который использует MiniProfiler
для определения загрузки страницы, и эта функция используется не только в режиме отладки, но и на действующем веб-сайте при входе в систему в качестве администратора.
Если не войти в систему как администратор, JavaScript MiniProfiler
не будет выполнен и, следовательно, не будет отображать обзор загрузки страницы в верхнем левом углу.
Однако X-MiniProfiler-Ids
все еще находится в HTTP Header
Это означает, что каждый запрос, профилирование выполняется, даже если он не визуализируется.
Причина этого заключается в том, что MiniProfiler
должен быть инициирован в функции Application_BeginRequest
функции Global.asax
, где Session
недоступен, где мы храним информацию о пользователе.Итак, поскольку у нас нет пользовательской информации, чтобы определить, следует ли выполнять профилирование, профилирование выполняется каждый запрос (для каждого пользователя), но не визуализируется.
Я попытался исправить это, сохранив информацию о пользователе.в Session
по-другому, но решения, которые я нашел, все же дали мне null
ссылки.
Имеет ли ваша X-MiniProfiler-Ids
в HTTP header
угрозу для разоблачения, даже если JavaScriptфайл не выполняется?Существует ли снижение производительности при использовании 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();
}
}
В обоих случаяхSession
был нулевым.