9
votes

Autoriser l'accès anonyme à la page par défaut

mon site ASP.NET FORMULES 4.0 est en cours d'exécution avec l'authentification des formulaires. Par défaut, les utilisateurs non autorisés sont refusés, puis je permet d'accéder à certaines pages. J'ai un problème permettant d'accéder à l'URL par défaut: http: /example.com. J'ai cette entrée dans web.config qui définit la page par défaut:

<location path="default.aspx">
    <system.web>
        <authorization>
            <allow users="?"/>
        </authorization>
    </system.web>
</location>


2 commentaires

Je sais ce que vous faites mal - chemin correspond au chemin qui a été demandé et non le chemin qui a été redirigé (sur le côté serveur) à, donc mySite.com ne correspond pas à la valeur par défaut.aspx. Je ne peux pas vous aider à le réparer, cependant :(


S'il vous plaît voir ma réponse concernant la suppression des modules ExtensionLoSurl Authentification des formulaires Ignorant le document par défaut:


4 Réponses :


-3
votes

Cela fonctionne pour moi dans une application Web de test:

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

<location path="Default.aspx">
    <system.web>
        <authorization>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>


4 commentaires

@JOSH - Pouvez-vous supprimer votre réponse afin de ne pas induire en erreur les autres? Je ne voulais pas la descendre :)


Cela n'aide pas - vous avez toujours besoin d'une manière d'une manière ou d'une autre, autorisez l'accès anonyme à la route / - j'ai déjà essayé ça :(


Désolé d'être si inutile - essayez ma réponse actuelle.


Cela ne jette qu'une erreur si vous avez des entrées en double ou une autre entrée qui n'a pas l'attribut de chemin défini. Cependant, il n'atteint pas non plus le résultat souhaité de rendre la page par défaut ouverte au public.



11
votes

Je viens de trouver une réponse dans une réponse (par Dmitry) à une question similaire ici à: Authentification des formulaires Ignorant le document par défaut :

dans global.asax, méthode: Application_beginrequest, Placez les éléments suivants: p>

if (Request.AppRelativeCurrentExecutionFilePath == "~/")
    HttpContext.Current.RewritePath("default.aspx");


1 commentaires

Vous me sauvez beaucoup de mal de tête ... Oui, c'est 2015 et j'utilise toujours des formulaires Web. Merci!



3
votes

Je viens de comprendre comment résoudre ce problème sans avoir à fudger une redirection.

Si vient d'être arrivé à moi après la conversion de .NET 2 à .NET 4 et je n'ai jamais trouvé ma solution nulle part sur Internet Donc, voici.

Si comme moi, votre page de connexion est également votre page par défaut, vous devez vous assurer de faire les deux éléments suivants dans le fichier web.config

Ajoutez ceci à exempter. à défaut.aspx de l'authentification (n'en a pas besoin de cela dans .net 2) xxx

et modifier l'URL de connexion de cette xxx

à ceci xxx

et vous devriez bien tout fonctionner maintenant, il suffit de l'essayer sur deux sites différents et il a fait le tour pour moi < / p>


1 commentaires

Pas vraiment une solution. Vous venez de modifier votre URL d'authentification (login.aspx) sur votre racine. Peut-être vous donner une solution maintenant ... mais je conseille fortement contre elle.



1
votes

Je n'ai pas aimé avoir effectué un changement de code pour ce problème, en particulier parce que mon site fonctionnait bien sur ma machine Windows Server 2008 R2, mais pas sur ma machine de développement Windows 7 SP1.

Il s'avère que la racine Cause de ce problème est une mise à jour dans Service Pack 1 pour Windows 7: P>

http: / /support.microsoft.com/kb/2526854 p>

La solution semble être de désactiver la nouvelle fonctionnalité "ExtensionSOsersURL" ajoutée dans SP1: P>

<system.webServer>

  <handlers>
    <remove name="ExtensionlessUrl-ISAPI-4.0_32bit" />
    <remove name="ExtensionlessUrl-ISAPI-4.0_64bit" />
    <remove name="ExtensionlessUrl-Integrated-4.0" />
  </handlers>

  <validation validateIntegratedModeConfiguration="false" />

</system.webServer>


0 commentaires