IIS Express автоматически отключает анонимную аутентификацию для моего проекта, почему? - PullRequest
34 голосов
/ 16 марта 2012

Когда я переключаю свой проект ASP.NET MVC с веб-сервера Cassini на IIS Express, это добавляется в мой файл applicationhost.config:

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

Это приводит к тому, что сайт не загружается с 401.2 - Несанкционированныйи я не могу исправить это на уровне Web.config - он будет жаловаться, что раздел заблокирован на родительском уровне (HTTP 500.19).

Я могу это исправить, внеся изменения в файл applicationhost.config, но яне понимаю, зачем мне это нужно, когда такой раздел не добавлен для ванильного проекта ASP.NET MVC.Что может быть не так?

Я использую бета-версию VS 11, но также подтвердил это странное поведение в 2010 SP1.IIS Express сообщает, что это версия 7.5.

Ответы [ 3 ]

74 голосов
/ 06 апреля 2012

Это произошло потому, что по какой-то причине это было в моем файле csproj:

<IISExpressAnonymousAuthentication>disabled</IISExpressAnonymousAuthentication>

Установка его на enabled устраняет проблему (это также можно сделать из Visual Studio, выберите проект, F4,установите Анонимная аутентификация в сетке свойств на Включено ).

5 голосов
/ 02 июля 2013

, пожалуйста, щелкните правой кнопкой мыши по проекту и выберите использование iis express, прежде чем нажимать F4.

0 голосов
/ 09 июля 2016

Иногда назад я сталкивался с той же трудностью, но она немного отличалась от того, что я вижу здесь. В моем ноутбуке у меня есть VS 08 и VS 13, а также SQL Server 2008 R2 и 11G XE. Для веб-сайтов подключение к R2 никогда не было проблемой, но когда я пытался создать веб-сайт, используя oracle-членство с asp.net, я обнаружил, что страницы открываются, но страницы в папке с ролями не открываются и выдают ошибку отказа в доступе. Несмотря на то, что в папке был правильный файл web.config, и пользователь создавал ту же роль, он все равно выдавал ту же ошибку. Наконец, я понял, что мне нужен механизм аутентификации, и добавил следующий код в system.web файла 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"
/>

И это сработало, теперь мои аутентифицированные пользователи могут войти в назначенные папки! Я надеюсь, что это может помочь кому-то, кто столкнулся с проблемами, похожими на меня.

...