Authentification Windows intégrée par application Si l'utilisateur annule la demande, puis-je les rediriger vers une autre page?

StackOverflow https://stackoverflow.com/questions/2541701

Question

ÉDITER ~ Mise à jour du titre et de l'organisme de question: Ceci est le montage.

Je veux ce comportement par application sur IIS6 / 7. Je l'ai demandé initialement avant de migrer vers IIS7, donc toute réponse peut être modifiée entre les deux (j'ai appris un peu sur IIS7 depuis lors;]) mais je cherche une réponse qui fonctionne.

J'ai besoin de rediriger par application non par serveur en fonction de la demande d'automne 401 (ce qui signifie 401.1 Code d'erreur). J'espère que cela t'aides.


Sur IIS6, en utilisant l'authentification NTLM (ce qui signifie l'authentification Windows intégrée) Si l'utilisateur annule la demande d'authentification, comment puis-je les rediriger vers une autre page? Je ne peux pas simplement saisir 401 (essayé) ou 401.1 (pas un int) dans le web.config.

Je ne peux pas rediriger si le problème est un statut 401 parce que je pousse intentionnellement à un 401 pour obtenir la réponse, oui? Alors, comment puis-je capturer lorsqu'ils ont annulé le défi du navigateur?

Pour confirmer que je suis clair: si j'ouvre Firefox et que je navigue vers une page IWA, cela me montre une boîte de dialogue (en supposant que je n'ai pas configuré cela dans environ: config) et i clés dans les informations d'identification Windows à utiliser. Je veux les empêcher d'arrêter cette boîte.

Était-ce utile?

La solution

Je sais que c'est ancien, mais certains types de réponse ne sont pas transmis à .NET pour le traitement. Au lieu de cela, ils doivent être manipulés au niveau IIS. Si vous voulez une page différente en fonction de la réponse, vous devez vous rendre chez IIS Manager et trouver la section qui contrôle les pages d'erreur (c'est différent en fonction de la version IIS que vous utilisez.

Ensuite, ajoutez le code d'état que vous souhaitez capturer et donnez-lui la page où vous souhaitez que le navigateur soit dirigé.

Je sais que vous avez mentionné IIS 6, mais je n'ai pas accès à l'un de ces serveurs. Pour IIS 7, cliquez sur le site. Accédez à la section IIS> Error Pages. Cliquez sur Ajouter. Tapez le code (401.1) et donnez-lui un chemin vers une page sur votre site. Assurez-vous que la page est accessible pour Anonymous.

METTRE À JOUR:
J'ai trouvé de nouvelles informations. Vous pouvez gérer cela dans votre web.config. Voir le site suivant pour plus de détails: Learn.iis.net

Dans la section Erreurs de votre web.config, faites ce qui suit (par exemple):

 <error statusCode="401" subStatusCode="1" prefixLanguageFilePath="c:\inetpub\custerr" path="401_1.htm" />

Je ne sais pas si vous pouvez utiliser des pages .aspx pour cela, mais cela ressemble certainement à cela. Cependant, ils devront probablement être complètement autonomes.

Documentation Microsoft sur le subsaturuscode est sur MSDN. Selon eux, cela ne fonctionne que sur IIS 7, .NET 3.0+, et lors de l'utilisation du mode pipeline intégré. Cela peut être un peu restrictif en fonction de votre application.

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