Wie kann ich ASP.NET automatische Umleitung nicht angemeldet Formulare Benutzer auf die login-Seite?
Ich habe eine ASP.NET website.
Möchte ich Benutzer, die nicht eingeloggt sind, werden automatisch (re)gerichtet auf die login-Seite, zum Beispiel,
~/Account/Login.aspx
Wie es jetzt ist, sind Benutzer in der Lage zu besuchen, die Seiten (zum Beispiel default.aspx
) ohne eingeloggt zu sein.
Hinweis: ich fahre auf der (vielleicht falschen) Annahme, dass ASP.NET hat seine eigene Authentifizierung Zyklus das passiert hinter meinem Rücken vor jeder (und jede) Seite geladen wird.
Update @asawyer einen link bereitgestellt hat, die zwar nicht helfen, die Frage zu beantworten, haben die eine hübsche Grafik:
Gut, was haben Sie versucht?
Ich habe eine web.config
- Datei, die es ermöglicht, Formen Authentifizierung:
<?xml version="1.0"?>
...
<configuration>
...
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" name=".ASPXFORMSAUTH" slidingExpiration="true"/>
</authentication>
...
</system.web>
...
</configuration>
Wenn ich navigieren Sie zu dem "default" - Seite, ich bin in der Lage, um es anzuzeigen, zum Beispiel,
GET http://localhost:53149/WebSite/HTTP/1.1
Host: localhost:53149
Bin und ich die Seite Inhalt:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
In anderen Worten, anstatt gezwungen zur Anmeldung auf der web-site, ich bin nicht gezwungen zu sein, melden Sie sich bei der web-site.
Möglicherweise hängt es mit der Tatsache, dass mein browser ausgeführt wird, lokal auf dem web-server, aber ich bin mit Forms
, nicht Windows
(und nicht Passport
und nicht None
) - Authentifizierung.
Bonus Lesen
- Eine Übersicht über die Forms-Authentifizierung (C#)
- MSDN: Anbieter für die Formularauthentifizierung
- MSDN: ASP.NET Web Application Security
- ASP.NET Forms-Authentifizierung
- Der Benutzer muss log-in zum anzeigen eines Dokuments Verwendung ASP.NET
- Schützen einige Seiten aus der direkte Zugang in ASP.NET
- FormsAuthentication-Klasse
ich habe schon googeln um für die, die für 2,5 Stunden jetzt. Denn niemand hat die Antwort auf Stackoverflow noch, ich dachte, ich würde bitten, die Frage. Dann hoffentlich komme ich können eine Antwort.
Nicht sicher, wie es nicht helfen, mein Freund, ich habe eine harte Zeit glauben Sie gegangen durch alle, die Informationen in 3 Minuten.
Dann beginnen Sie hier: ASP.NET Authentifizierung. Kurz gesagt, es beinhaltet die Entscheidung, welche Authentifizierung/Sicherheit, die Sie einschließen möchten und welche tweaks (und wie) zu machen, in Ihrer Website.config.
Und innerhalb dieser Zeitspanne Bereicherung der Grafik (aber keine Freihand-Kreise).
InformationsquelleAutor Ian Boyd | 2012-06-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich die Antwort.
Frage: Wie kann ich die automatische Umleitung nicht-angemeldete Benutzer auf die login-Seite?
Antwort: Verweigern anonyme Benutzer Zugriff
Längere Erklärung
Um die automatische Umleitung nicht-angemeldete Benutzer auf die login-Seite, die Sie brauchen, zu verweigern anonyme Zugang zu "allen" Seiten. Dies geschieht in der Website
web.config
Datei:web.config
Den Besondere
?
token ist für anonyme Benutzer.Wenn dies mit dem erzählen Formen - Authentifizierung, wo die "Login" - Seite ist:
bedeutet, dass jede anonyme Benutzer werden automatisch weitergeleitet auf die login Seite.
Einer Frage, die so noch nie vor der Frage wird beantwortet und jeder lebt.
Gut, die Art und Weise, in der Sie spielen gut mit Microsoft ' s gezielt entwickelt, asp.net Sicherheits-system. Aber, mein Gott, versuchen zu finden, dass durch die Jagd rund um MSDN und die web - verdammt nahe unmöglich. Am Ende stolperte ich über eine zweite web-config wird automatisch erstellt, indem das Visual Studio, wo Sie erlauben/verbieten bestimmte Dateien. Googeln diese keywords (
authorization allow deny ?
) brachte mich zu den ein link, der erwähnt, verweigern von Zugriff auf eine gesamte site.Implementiert habe ich den Weg vorgeschlagen, aber nachdem ich mich Anmelde, dauert es nicht mich auf die Seite, die ich erwähnte Weiterleitung nach dem erfolgreichen login.
das problem kommt, wenn Sie brauchen, um Zugang zum Anmeldeformular, die Umleitung zu login-Formular wieder 🙂
Das (Q+A) war ein harter Graben arbeiten. Ich danke Ihnen sehr!
InformationsquelleAutor Ian Boyd
Wenn Sie es wünschen, um Kraft für alle Seiten verwendet werden, ersten angemeldet sind, können Sie erfassen die Authentifizierung auf Anfrage
global.asax
und stellen Sie diese programmatisch als:Dieser code wird aufgerufen, auf jeder Seite und prüft alle Seiten auf Ihrer Website.
InformationsquelleAutor Aristos
Hinzufügen Sie Internet.config
name
undslidingExpiration
, verliert aber dieTimeout
). Hinzufügen und entfernen von Attributen, ich bin immer noch in der Lage, zu durchsuchen, zudefault.aspx
ohne gefragt zu werden, für die ein Benutzername/Passwort (also ohne auf der Website angemeldet)InformationsquelleAutor Dennis Traub