Web.config в папке, позволяющей полностью или без аутентификации пользователя

У меня есть папка с несколькими обзорными страницами aspx. Я должен установить разрешения для этих страниц aspx. Существует 5 разных страниц, и только один позволяет некоторым пользователям получить доступ. Я добавил файл web.config, чтобы разрешить и запретить пользователям, но он не работает. Если я разрешу свое имя пользователя и добавлю deny="?", у меня нет доступа, но если я добавлю другого пользователя, выведите мой вопрос и возьмите опцию deny, я получаю разрешение на вход в систему. Я могу получить доступ, если я откажусь, но затем все пользователи получают доступ к странице.

Добавление учетных данных пользователя и отказ от всех анонимных пользователей. Я не получаю доступ. Может кто-нибудь, пожалуйста, указать мне в правильном направлении, что я делаю неправильно? Может быть, он не читает или не принимает мои учетные данные для входа в Windows? Я использую visual studio 2012, сущность framework.

Это то, что я сделал:

   //Web Config that allows and denies:
   <?xml version="1.0"?>
        <configuration>
        <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
     </system.web>

    <location path="QualityCheckSurvey.aspx">
    <system.web>
      <authorization>
        <allow users="DomainName\User2" />
        <deny users="?" /> 
      </authorization>
    </system.web>
    </location>
    </configuration>

Я установил режим аутентификации в окна.

ИЗМЕНИТЬ Кажется, что разрешения были установлены неправильно. Но он все еще не работает. Когда я отказываюсь от *, но разрешаю пользователю USER1, пользователь не получает доступа, даже если запрашивается запрос на вход. Диалоговые окна боксов входа в систему просто продолжают появляться в 3 раза, даже если у них есть доступ. что отрицает? (анонимный) позволяет всем иметь доступ, даже если я выберу deny, и у меня есть только тег allow с USER1, остальные пользователи все еще имеют доступ... Я запускаю локально сейчас, но даже в IIS при настройке аутентификация там (окна и базовая аутентификация) делает то же самое....

ИЗМЕНИТЬ Это фактический код, который я использую. На этом пути разрешено использовать только 3 пользователя ". Этот файл web.config находится в папке опроса с 5 различными типами опросов. Только этот опрос должен позволять определенным пользователям, остальные опросы, к которым любой может получить доступ.

     <?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>

  <location path="QualityCheckSurvey.aspx">
    <system.web>

      <authorization>
        <deny users="?" />
        <allow users="OEP\kevinh, OEP\shabierg, OEP\heilened" />
        <deny users="*" />
      </authorization>

    </system.web>
  </location> 

В моем основном web.cofin в корне приложения я установил режим проверки подлинности для окон:

     <authentication mode="Windows">

<!--<forms loginUrl="~/Account/Login.aspx" timeout="2880" />-->
    </authentication>

Ответ 1

По вашему вопросу вы сказали, что у вас есть имя папки, но на web.config вы указали только имя файла на пути. Используйте имя папки /filename.aspx, как показано ниже. Используйте deny users = "*" вместо deny users = "?"

<location path="foldername/QualityCheckSurvey.aspx">
    <system.web>
        <authorization>
            <allow users="DomainName\User2"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>

ИЗМЕНИТЬ

Похоже, у вас несколько файлов web.config в одном приложении. Чтобы избежать путаницы, просто удалите файл в папке опроса, а в корневой папке web.config добавьте этот код.

 <?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <authentication mode="Windows" />
    </authorization>
  </system.web>

  <location path="survey/QualityCheckSurvey.aspx">
    <system.web>
      <authorization>
        <allow users="OEP\kevinh, OEP\shabierg, OEP\heilened" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location> 

Я предполагаю, что папка опроса находится внутри корневой папки.

Ответ 2

<deny users="?" /> 
<allow users="DomainName\User2" />
<deny users="*" /> 

Ответ 3

Фиксация этой ошибки, если аутентификация Windows добавлена ​​в проект после ее создания

Это глоток. У меня возникла эта проблема, когда я добавил проверку подлинности Windows в существующий проект. Было несколько ключевых вещей, которые мне нужно было сделать, прежде чем это сработает:

1. В обозревателе решений щелкните по проекту, а затем нажмите F4. Это должно открыть свойства проекта.
2. В свойствах проекта и под сервером разработки внесите следующие изменения:
 - Анонимная аутентификация: отключена
- Аутентификация Windows: включена / 3. Включите следующее в Web.config под <system.web>:

<authorization>
  <allow users="DOMAIN\user"/>
  <deny users="*"/>
</authorization>

4. Все еще в Web.config под <appSettings>:

<add key="owin:AutomaticAppStartup" value="false"/>


Это то, что сработало для меня. Если я делаю что-то неправильно, пожалуйста, дайте мне знать.
Надеемся, это поможет будущим людям, которые работают с проверкой подлинности Windows после создания проекта.