J'essaie cette méthode depuis deux jours. Je n'arrive pas à comprendre quel est le problème. J'ai essayé tous les paramètres d'IIS comme "Moving negotiate down, disable other authentication" mais cela ne fonctionne pas. Voici donc mon problème : j'ai une application web intranet en ASP.NET qui utilise des noms d'utilisateur et des mots de passe stockés dans Active Directory. J'ai cinq pages différentes dans mon application. Toutes les pages sont stockées dans des dossiers séparés avec leurs fichiers web.config. Ces fichiers web.config contiennent les noms des utilisateurs autorisés à visualiser la page en question.
<authorization>
<allow users="Domainname\username"/>
</authorization>
Je veux rediriger les utilisateurs qui ne figurent pas dans la liste ci-dessus vers une autre page d'erreur avec un message approprié. J'ai utilisé ceci
protected void Application_EndRequest(object sender, EventArgs e)
{
if (HttpContext.Current.Response.Status.StartsWith("401"))
{
HttpContext.Current.Response.ClearContent();
Response.Redirect("~/myerrorpage.aspx?myerrormsg=you are not allowed");
}
}
Cela fonctionne sur le localhost, mais lorsque j'installe mon application dans IIS, tous les utilisateurs autorisés (ceux qui figurent dans la liste) sont également redirigés vers la page du message d'erreur.
En dehors d'IIS, il fonctionne correctement. Cependant, je ne suis pas en mesure de rediriger les utilisateurs non autorisés vers la page de message d'erreur. J'ai également essayé avec les paramètres des pages d'erreur de IIS, mais j'ai le même problème.
Veuillez me suggérer ce que je dois faire pour remédier à ce problème. Existe-t-il une autre façon de procéder ?