Frage

Das ? Die Wildcard repräsentiert nicht authentifizierte Benutzer, während * Repräsentiert alle Benutzer, authentifiziert und nicht authentifiziert. Mein Buch zeigt das folgende Beispiel für die URL -Autorisierung:

<authorization>
  <deny users="?" />
  <allow users="dan,matthew" />
  <deny users="*" />
</authorization>


Aber nicht der obige Code hat den gleichen Effekt wie:

<authorization>
  <allow users="dan,matthew" />
  <deny users="*" />
</authorization>

Oder hat der Autor auch eingeschlossen? <deny users="?" /> Regel aus einem Grund?

War es hilfreich?

Lösung

ASP.NET gewährt als Voraussetzung von der Konfigurationsdatei Zugriff. Im Falle eines potenziellen Konflikts hat der erste auftretende Zuschuss Vorrang. So,

deny user="?" 

verweigert den Zugriff auf den anonymen Benutzer. Dann

allow users="dan,matthew" 

gewährt Zugriff auf diesen Benutzer. Schließlich verweigert es den Zugang zu allen. Dies erschüttert, wie alle außer Dan, Matthew wird der Zugang verweigert.

Bearbeitet, um hinzuzufügen: Und wie @Deviant betont, ist es sinnlos, den Zugriff auf nicht authentifizierte zu verweigern, da der letzte Eintrag ebenfalls nicht authentifiziert enthält. Ein guter Blogeintrag über dieses Thema finden Sie unter: Guru Sarkars Blog

Andere Tipps

"Zum Laufzeit iteriert das Autorisierungsmodul die Elemente zu und verweigern Sie an der lokalen Konfigurationsdatei, bis das Autorisierungsmodul die erste Zugriffsregel findet, die zu einem bestimmten Benutzerkonto passt. Anschließend gewährt das Autorisierungsmodul den Zugriff auf den Zugriff auf Eine URL -Ressource, abhängig davon, ob die erste zugängliche Zugriffsregel eine zulässige oder eine Verweigerungsregel gefunden hat. Die Standard -Autorisierungsregel lautet. Standardmäßig ist der Zugriff, sofern nicht anders konfiguriert ist. "

Artikel bei Msdn

deny = * means deny everyone
deny = ? means deny unauthenticated users

In Ihrem ersten Beispiel wird Dan, Matthew, nicht beeinflussen, da sie bereits von der vorhergehenden Regel zugelassen wurden.

Laut den Dokumenten gibt es hier keinen Unterschied in Ihren beiden Regelsätzen.

Beispiel 1 ist für ASP.NET -Anwendungen mithilfe von Formularen Authennierung. Dies ist eine übliche Praxis für Internetanwendungen, da der Benutzer nicht authentifiziert ist, bis er sich gegen ein Sicherheitsmodul Authentcation handelt.

Beispiel 2 ist für die ASP.NET -Anwendung mithilfe der Windows -Authärikation. Die Windows -Authentifizierung verwendet Active Directory, um Benutzer zu authentifizieren. Der Zugriff auf Ihre Bewerbung verhindern. Ich verwende diese Funktion für Intranet -Anwendungen.

Siehe diese beiden Links:

Element für die Autorisierung verweigern (ASP.NET -Einstellungsschema) http://msdn.microsoft.com/en-us/library/vstudio/8aeskccd%28v=vs.100%29.aspx

Element für die Autorisierung zulassen (ASP.NET -Einstellungsschema): http://msdn.microsoft.com/en-us/library/vstudio/acsd09b0%28v=vs.100%29.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top