2010-03-23 4 views
1

Voici mon problème. J'ai un site Web d'ASPX et j'ai le code là pour rediriger de la page de connexion avec l'appel à "FormsAuthentication.RedirectFromLoginPage (nom d'utilisateur, faux);" Cela envoie l'utilisateur du dossier du site Web racine à «site Web/Admin /». J'ai une page 'default.aspx' dans 'website/Admin /' et l'appel pour rediriger fonctionne sur une version précédente du site web que nous avons actuellement en cours, mais celle que je suis en train de mettre à jour sur un serveur de test séparé ne fonctionne pas. Il me donne l'erreur "Liste de répertoire refusée.Ce répertoire virtuel n'autorise pas le contenu d'être répertorié." J'ai cela dans le fichier de configuration:Fonction ASPX FormsAuthentication.RedirectFromLoginPage ne fonctionne plus

<authorization> 
    <allow users="*" /> 
</authorization> 

sous l'option "authentification" et ...

<location path="Admin"> 
    <system.web> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 
    </system.web> 
</location> 

pour l'emplacement de l'administrateur.

De plus, il n'y a aucune différence dans le code entre les fichiers web.config, Login.aspx ou default.aspx sur le serveur actuel et celui sur le serveur de test, donc je suis confus quant à savoir pourquoi la redirection ne fonctionnera pas sur les deux. Il fonctionne même dans l'environnement du serveur Visual Studio, pour lequel le code est également identique.

Toutes les suggestions et l'aide est appréciée.

+0

default.aspx est définitivement dans la liste de documents par défaut pour ce répertoire virtuel? C'est la première chose que je vérifierais. – Pike65

+0

Si le code est identique à ce que vous dites, je regarderais certainement la configuration de la boîte hébergeant les sites, en commençant par la suggestion de Pike65. – mwright

+0

En fait, je n'ai pas accès à cet ordinateur (serveur distant) donc je ne peux pas vérifier, mais je sais que tout cela a fonctionné il y a quelques semaines sur le serveur de test avant de télécharger le site Web mis à jour. –

Répondre

1

Directory Listing Denied est une erreur IIS, indiquant que la navigation dans le répertoire sur le serveur n'est pas autorisée. Si vous voyez cela, cela signifie que lorsque vous naviguez vers Website/Admin, le serveur ne trouve aucun document par défaut attendu et essaie ensuite de vous montrer le répertoire du fichier via le navigateur (comportement attendu). IIS est configuré pour ne pas autoriser cela dans votre cas (ce qui est une bonne chose).

Pouvez-vous contacter les administrateurs de serveur et leur demander de vérifier les documents par défaut pour le site Web, et ajouter Default.aspx à la liste? Sinon, identifiez au moins les noms de fichiers par défaut dans la configuration du site et nommez votre page racine en fonction de cela.

Je pense que par défaut IIS utilise Default.htm et peut-être un autre. Même en enregistrant asp.net avec IIS, je ne crois pas Default.aspx est ajouté. Cela doit être fait manuellement.

+0

Nous avions besoin d'une solution rapide et apparemment mon patron a dit qu'ils avaient des problèmes similaires auparavant, que je ne connaissais pas. Nous avons fini par jeter une page 'index.html' dans ce répertoire avec le code de redirection via html: Il redirige maintenant vers la page default.aspx parfaitement. Cela devrait résoudre nos problèmes si les pages par défaut sont retirées de la liste à l'avenir. –