11
votes

Comment afficher une page d'erreur personnalisée pour un résultat HTTP 401?

J'ai un contrôleur avec un attribut Authorize, comme celui-ci:

<customErrors mode="On">
      <error statusCode="401" redirect="notauthorized.html"/>
  </customErrors>


0 commentaires

4 Réponses :


1
votes

Une approche standard aussi loin que je sache, c'est avoir un simple contrôleur d'erreur qui gère les demandes entrantes et génère la vue appropriée en fonction duquel le code httpstatus a été renvoyé ... quelque chose comme ceci:

<customErrors mode="On" defaultRedirect="~/Error" />


0 commentaires

3
votes

Jetez un coup d'œil à TVANFosson 's Réponse de Cette question très similaire , c'est ce que je fais (merci à TVANFosson), je dois donc juste dire: XXX

Si l'utilisateur n'est pas dans le rôle, ils obtiendront la vision spécifiée par la vueName.

Note: La page vierge vient de Cassini, si vous vous déplacez. L'application à un serveur IIS réelle que vous verrez le 401.


1 commentaires

Vous voulez dire si je déplace l'application sur IIS, je devrais voir la page personnalisée? ou je devrais juste voir la page Standard IIS 401?



14
votes

J'apprécie cette question est un peu vieux, mais cela peut aider quelqu'un.

Pour un 401, vous verrez probablement la page standard 401 non autorisée, même si vous avez ajouté 401 à la section CustomErrors de votre web.config . J'ai lu que lorsque vous utilisez l'authentification IIS et Windows, le chèque se produit avant même ASP.NET, même la demande, alors que vous voyez la page vierge sur Cassini et sur IIS, il est propriétaire 401.

Pour mon projet, j'ai édité le monde. .Asax Fichier Pour rediriger vers un itinéraire que j'avais créé pour 401 erreurs, envoyant l'utilisateur au "non autorisé pour voir cette" vue "

dans le global.axax: xxx < / Pré>

et dans la route.config: xxx

et dans le contrôleur: xxx


0 commentaires

0
votes

Aussi vous pouvez créer votre propre attribut d'autorisation personnalisé et définir votre propre itinéraire pour rediriger les utilisateurs de votre page.

Voici un échantillon sur mon projet: xxx

et vous ajoutez votre "drapeau" dans votre contrôleur d'action comme celui-ci xxx


0 commentaires