Question

J'ai ces pages:

  1. _PageStart.cshtml
  2. Index.cshtml
  3. Login.cshtml

    .

    .

    .

n. OtherPage.cshtml

En fait, je veux restreindre un utilisateur d'accéder à toutes les pages quand il est pas connecté, à une exception près, « Login.cshtml ».

Dans mon « _PageStart.cshtml », lorsqu'un utilisateur n'est pas connecté, la page est redirigé vers « Login.cshtml ». Depuis « Login.cshtml » est demandée, le « _Pagestar.cshtml » se déroulera et détecte que l'utilisateur n'est pas connecté, comme résultat, une redirection infinie sera créé.

La question est maintenant:

  1. est "_PageStart.cshtml" le meilleur endroit pour mettre le redirect?
  2. Si la réponse à une question est oui, alors comment ne pas appliquer pageStart sur une page spécifique?
  3. Si la réponse à une question est non, alors où? Dois-je créer une aide et le mettre dans chaque page?
Était-ce utile?

La solution

Placez les pages que vous souhaitez protéger l'intérieur d'un autre dossier et le titre quelque chose comme « membres ». Dans ce dossier, placez votre _PageStart.cshtml avec le code suivant:

@{ 
    WebSecurity.RequireAuthenticatedUser();
}

Si vous utilisez la structure de répertoire standard illustré dans le site de démarrage, votre Login.cshtml doit être dans le répertoire du compte et l'assistant WebSecurity utilisateurs se redirigera automatiquement vers votre page Login.cshtml si elles tentent d'accéder à votre répertoire protégé sans authentifier leurs membres.

Jerrod

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top