web-dev-qa-db-fra.com

IIS Express désactive automatiquement l'authentification anonyme pour mon projet, pourquoi?

Lorsque je bascule mon projet ASP.NET MVC du serveur Web Cassini vers IIS Express, cela est ajouté à mon applicationhost.config fichier:

<location path="MyProject">
    <system.webServer>
        <security>
            <authentication>
                <anonymousAuthentication enabled="false" />
                <windowsAuthentication enabled="false" />
            </authentication>
        </security>
    </system.webServer>
</location>

Cela empêche le site de se charger avec 401.2 - Non autorisé et je ne peux pas le corriger au niveau de Web.config - il se plaindra alors que la section est verrouillée au niveau parent (HTTP 500.19).

Je peux le corriger en modifiant le applicationhost.config fichier mais je ne comprends pas pourquoi je devrais avoir besoin de quand aucune section n'est ajoutée pour un projet Vanilla ASP.NET MVC. Qu'est-ce qui ne va pas?

J'utilise VS 11 beta mais a également confirmé ce comportement étrange dans 2010 SP1. IIS Express dit que c'est la version 7.5.

34
Borek Bernard

C'est parce que pour une raison quelconque, c'était dans mon fichier csproj:

<IISExpressAnonymousAuthentication>disabled</IISExpressAnonymousAuthentication>

Le définir sur enabled résout le problème (cela peut également être fait à partir de Visual Studio, sélectionnez le projet, F4, définissez Authentification anonyme dans la grille des propriétés sur Activé ).

74
Borek Bernard

veuillez cliquer avec le bouton droit sur le projet et sélectionnez utiliser iis express avant d'appuyer sur F4.

5
Raju S Nair

Il y a parfois, j'ai fait face à la même difficulté, mais c'était peu différent de ce que je vois ici. Dans mon ordinateur portable, j'ai à la fois VS 08 et VS 13, et SQL Server 2008 R2 et 11G XE. Pour les sites Web se connectant à R2, cela n'a jamais été un problème, mais lorsque j'essayais de créer un site Web en utilisant l'appartenance à Oracle avec asp.net, j'ai constaté que les pages ouvertes mais les pages sous le dossier avec les rôles ne s'ouvraient pas et me donnant l'erreur d'accès refusé. Bien que le dossier contienne un fichier web.config approprié et que l'utilisateur ait créé avec le même rôle, il renvoyait toujours la même erreur. Enfin, j'ai réalisé que j'avais besoin du mécanisme d'authentification et j'ai donc ajouté le code suivant dans le system.web de web.config:

<authentication mode="Forms">
<forms loginUrl="Login.aspx" protection="All" slidingExpiration="true"
timeout="90" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
<identity impersonate="false"/>
<trace
enabled="false"
requestLimit="10"
pageOutput="false"
traceMode="SortByTime"
localOnly="true"
/>

Et cela a fonctionné, maintenant mes utilisateurs authentifiés peuvent se connecter dans des dossiers désignés! J'espère que cela pourrait aider quelqu'un qui a rencontré des problèmes similaires à moi.

0
user3615318