ASP.NET Проверка подлинности Windows не работает в IIS 7.5

#asp.net #windows #iis #authentication

#asp.net #Windows #iis #проверка подлинности

Вопрос:

Итак, у меня есть ASP.NET сайт, использующий проверку подлинности Windows, которая выполняет только одну вещь:

     protected void Page_Load(object sender, EventArgs e)
    {
        somelabel.Text = HttpContext.Current.User.Identity.IsAuthenticated.ToString();
        return;
    }
  

К сожалению, по какой-то причине это всегда false. Вот мой web.config

 <configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<authentication mode="Windows"/>
<authorization>
  <allow users="*"/>
</authorization>
<customErrors mode="Off"/>
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
  

Я развернул ее в своей Windows 7 под управлением IIS 7.5.

  • Установлена и включена проверка подлинности Windows
  • Целевая платформа 4.0
  • Интегрирован конвейер пула приложений
  • Расширенная защита при проверке подлинности Windows «отключена» и «принята» (пробовал оба)

Ответ №1:

Измените раздел авторизации на:

 <authorization>
  <deny users="?"/>
</authorization>
  

Я думаю, что, говоря allow users="*" , вы разрешаете доступ к каждому телу.

Смотрите этот пост Скотта Гатри

Комментарии:

1. Вы имеете в виду запретить пользователям =»?». То, что вы написали, позволит использовать только анонимных пользователей

2. @simonhalsey Я хотел скопировать этот раздел web.config из блога Скотта, но, очевидно, сделал это неправильно. Теперь это исправлено, большое спасибо!