Comment puis-je faire en sorte qu'ASP.NET redirige automatiquement les utilisateurs non connectés dans les formulaires vers la page de connexion?
J'ai un ASP.NET site web.
Je veux les utilisateurs qui ne sont pas enregistrés automatiquement (re)dirigé vers la page de connexion, par exemple,
~/Account/Login.aspx
Comme il est maintenant, les utilisateurs sont en mesure de visiter des pages (par exemple, default.aspx
) sans être connecté.
Note: je suis d'exploitation sur le (peut-être erronée) de l'hypothèse que ASP.NET a sa propre authentification cycle qui se passe derrière mon dos avant de tous (et toute) chargement de la page.
Mise à jour @asawyer fourni un lien qui, tout en n'aidant pas à répondre à la question, a fourni un joli graphique:
Bien, qu'avez-vous essayé?
J'ai un web.config
fichier qui permet Formes authentification:
<?xml version="1.0"?>
...
<configuration>
...
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" name=".ASPXFORMSAUTH" slidingExpiration="true"/>
</authentication>
...
</system.web>
...
</configuration>
Quand j'ai accédez à la page "standard", je suis en mesure de l'afficher, par exemple,
GET http://localhost:53149/WebSite/HTTP/1.1
Host: localhost:53149
Et je suis obtenir le contenu de la page:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
En d'autres termes, plutôt que d'être forcé pour vous connecter au site web, je suis pas d'être forcé de se connecter au web-site.
Il pourrait être lié au fait que mon navigateur s'exécute localement sur le serveur web; mais je suis en utilisant Forms
pas Windows
(et pas Passport
et pas None
) d'authentification.
Bonus De Lecture
- Une vue d'ensemble de l'Authentification par Formulaires (C#)
- MSDN: Fournisseur d'Authentification par Formulaires
- MSDN: ASP.NET la Sécurité des Applications Web
- ASP.NET l'Authentification par Formulaires
- Demander à l'utilisateur de se connecter pour afficher un document à l'aide de ASP.NET
- Protéger certaines pages d'un accès direct à ASP.NET
- Classe FormsAuthentication
source d'informationauteur Ian Boyd
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la réponse.
Question: Comment puis-je rediriger automatiquement les non-utilisateurs connectés à la page de connexion?
Réponse: Refuser l'accès d'utilisateurs anonymes
Une Longue Explication
Afin de rediriger automatiquement les non-utilisateurs connectés à la page de connexion, vous devez refuser anonyme accès à "toutes les pages". Ceci est fait dans le site
web.config
fichier:web.config
La spécial
?
jeton est utilisé pour représenter les utilisateurs anonymes.Ce, lorsqu'il est combiné avec de raconter Formes d'authentification où la page "Login" est:
signifie que tous les utilisateurs anonymes serez automatiquement redirigé vers la connexion page.
Une question qui semble n'avoir jamais été demandé avant obtient répondu, et tout le monde vit.
Si vous souhaitez vigueur pour toutes les pages de tous utilisé pour être le premier connecté, vous pouvez capturer la demande d'authentification sur
global.asax
et faire par programmation:Ce code est appelé sur chaque page et vérifie toutes les pages sur votre site.
Ajouter ce vous web.config