Я считаю, что если cookie для Glimpse не найден, он не загружается и не выполняет никаких действий, поэтому производительность должна быть незначительной.В плане безопасности вы можете просто установить ограничение пользователя в файле web.config для местоположения пути взгляда.
<location path="Glimpse.axd" >
<system.web>
<authorization>
<allow users="Administrator" />
<deny users="*" />
</authorization>
</system.web>
</location>
Или, если есть роль администратора, вы можете сделать это по роли, а не по имени пользователя.
Вы также можете отключить его, если не хотите полагаться только на наличие файла cookie.Это легко достигается с помощью преобразований web.config, я еще не тестировал разметку, но что-то вроде этого должно работать.
<glimpse enabled="false" xdt:Transform="SetAttributes">
</glimpse>
ОБНОВЛЕНИЕ : Glimpse недавно видел некоторые измененияи (начиная с 1.0, я полагаю?) преобразование теперь будет выглядеть следующим образом.Попытка установить атрибут enabled
приведет к ошибке конфигурации в самой последней версии Glimpse.
<glimpse defaultRuntimePolicy="Off" xdt:Transform="SetAttributes">
</glimpse>
Как указано в документации ...
Glimpse никогда не будетразрешено делать больше с Http-ответом, чем указано в DefaultRuntimePolicy
.
Следует отметить, что единственное назначение, которое выполняет это преобразование, - это если вы хотите удалить возможность использовать Glimpse какчасть вашего процесса развертывания.Если вы хотите условно отключить его на основе других критериев, таких как удаленные запросы или проверка авторизации, это лучше сделать с помощью политик.Glimpse работает на основе ряда политик (основанных на IRuntimePolicy
), разработанных, чтобы помочь определить, когда glimpse должно быть разрешено делать это.Фактически, после установки Glimpse, если вы перейдете к glimpse.axd, в нижней части этой страницы вы увидите список политик, которые в настоящее время включены.Например, LocalPolicy
, который предотвращает доступ к нему через удаленные запросы (конфигурируемо, любая политика может быть проигнорирована через web.config, чтобы разрешить удаленные запросы) http://getglimpse.com/Help/Configuration. У них также есть пример класса, называемый GlimpseSecurityPolicy
, которыйвключается при установке Glimpse с помощью Nuget, который можно использовать для добавления ограничений авторизации.
public class GlimpseSecurityPolicy:IRuntimePolicy
{
public RuntimePolicy Execute(IRuntimePolicyContext policyContext)
{
// You can perform a check like the one below to control Glimpse's permissions within your application.
// More information about RuntimePolicies can be found at http://getglimpse.com/Help/Custom-Runtime-Policy
var httpContext = policyContext.GetHttpContext();
if (httpContext.User != null && !httpContext.User.IsInRole("Glimpse")) //Once glimpse is turned on, you have to be a member of this Role to see the Glimpse Panel.
{
return RuntimePolicy.Off;
}
return RuntimePolicy.On;
}
public RuntimeEvent ExecuteOn
{
get { return RuntimeEvent.EndRequest; }
}
}
Теперь политики используются для определения времени запуска glimpse, но они не мешают пользователю бытьвозможность вызвать страницу glimpse.axd.Куки все еще могут быть включены из того, что я могу сказать, но куки не имеет смысла, если glimpse отказывается работать, несмотря на наличие куки.При этом все же рекомендуется обернуть страницу glimpse.axd в проверку авторизации, используя тег location в вашем файле web.config.Обратите внимание, что это в дополнение к GlimpseSecurityPolicy
выше.
<location path="glimpse.axd">
<system.web>
<authorization>
<allow roles="Glimpse" />
<deny users="*" />
</authorization>
</system.web>
</location>