Ich glaube, wenn das Cookie für Glimpse nicht gefunden wird, wird es nicht geladen oder tut nichts, daher sollte die Leistung vernachlässigbar sein. In Bezug auf die Sicherheit können Sie einfach in der web.config eine Benutzereinschränkung für den Speicherort des Blickpfads festlegen.
<location path="Glimpse.axd" >
<system.web>
<authorization>
<allow users="Administrator" />
<deny users="*" />
</authorization>
</system.web>
</location>
Wenn es eine Administratorrolle gibt, können Sie dies auch nach Rolle anstelle des Benutzernamens tun.
Sie können es auch ausschalten, wenn Sie sich nicht nur auf das Vorhandensein des Cookies verlassen möchten. Dies ist leicht durch web.config-Transformationen zu erreichen. Ich habe das Markup noch nicht getestet, aber so etwas sollte funktionieren.
<glimpse enabled="false" xdt:Transform="SetAttributes">
</glimpse>
UPDATE : In letzter Zeit wurden einige Änderungen vorgenommen, und (seit 1.0, glaube ich?) Würde die Transformation nun wie folgt aussehen. Der Versuch, das enabled
Attribut festzulegen, führt in der neuesten Version von Glimpse zu einem Konfigurationsfehler.
<glimpse defaultRuntimePolicy="Off" xdt:Transform="SetAttributes">
</glimpse>
Wie die Dokumentation es ausdrückt ...
Glimpse darf mit einer HTTP-Antwort niemals mehr tun, als in angegeben DefaultRuntimePolicy
.
Es sollte beachtet werden, dass der einzige Zweck dieser Transformation darin besteht, die Möglichkeit zu entfernen, Glimpse als Teil Ihres Bereitstellungsprozesses zu verwenden. Wenn Sie es aufgrund anderer Kriterien wie Remote-Anforderungen oder Berechtigungsprüfung bedingt deaktivieren möchten, erfolgt dies besser über Richtlinien. Glimpse arbeitet jetzt mit einer Reihe von Richtlinien (alle basieren auf IRuntimePolicy
), mit denen bestimmt werden soll, wann Glimpse das tun darf. Wenn Sie nach der Installation von Glimpse zu glimpse.axd navigieren, wird unten auf dieser Seite eine Liste der derzeit aktivierten Richtlinien angezeigt. Zum Beispiel das LocalPolicy
, das verhindert, dass Remote-Anforderungen darauf zugreifen (konfigurierbar kann jede Richtlinie über die web.config ignoriert werden, um Remote-Anforderungen zuzulassen). Http://getglimpse.com/Help/Configuration. Sie haben auch eine Beispielklasse namens GlimpseSecurityPolicy
, die enthalten ist, wenn Sie Glimpse mit Nuget installieren, mit der Sie Autorisierungsbeschränkungen hinzufügen können.
public class GlimpseSecurityPolicy:IRuntimePolicy
{
public RuntimePolicy Execute(IRuntimePolicyContext policyContext)
{
var httpContext = policyContext.GetHttpContext();
if (httpContext.User != null && !httpContext.User.IsInRole("Glimpse"))
{
return RuntimePolicy.Off;
}
return RuntimePolicy.On;
}
public RuntimeEvent ExecuteOn
{
get { return RuntimeEvent.EndRequest; }
}
}
Jetzt werden die Richtlinien verwendet, um zu bestimmen, wann glimpse ausgeführt werden soll, aber sie verhindern nicht, dass der Benutzer die Seite glimpse.axd aufrufen kann. Der Cookie kann nach wie vor aktiviert werden, was ich sagen kann, aber der Cookie ist bedeutungslos, wenn ein Blick trotz des vorhandenen Cookies nicht ausgeführt werden kann. Trotzdem ist es immer noch ratsam, die Seite glimpse.axd mit dem Standort-Tag in Ihrer web.config in eine Autorisierungsprüfung einzuschließen. Beachten Sie, dass dies zusätzlich zu den GlimpseSecurityPolicy
oben genannten ist.
<location path="glimpse.axd">
<system.web>
<authorization>
<allow roles="Glimpse" />
<deny users="*" />
</authorization>
</system.web>
</location>