Используйте проверку подлинности форм asp.net, чтобы только зарегистрированные пользователи могли просматривать веб-сайт - PullRequest
3 голосов
/ 23 июня 2011

Login.aspx, passwordrecovery.aspx и register.aspx должны быть единственными страницами, доступными для зарегистрированных пользователей.В моем webconfig есть следующее:

  <authentication mode="Forms">
      <forms loginUrl="Login.aspx" defaultUrl="Login.aspx" />
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>

В моем элементе конфигурации моего webconfig есть следующее:

 <location path="images">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
  <location path="css">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
  <location path="login.aspx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
  <location path="register.aspx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
  <location path="passwordrecovery.aspx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

Я получаю сообщение об ошибке: ASP.NET Ajax на стороне клиентарамки не удалось загрузить.окно предупреждения при просмотре любой из общедоступных страниц.Как мне разрешить доступ к клиентской среде asp.net (используя теги местоположения?)?

Ответы [ 3 ]

3 голосов
/ 23 июня 2011

Я проверил скрипач и добавил следующее:

<location path="Telerik.Web.Ui.WebResource.axd">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

Теперь загружается клиентская среда Ajax - сообщение об ошибке исчезло. Для тех, кто не использует элементы управления Telerik - я уверен, что вы можете использовать что-то похожее на:

<location path="WebResource.axd">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
3 голосов
/ 23 июня 2011

Проверьте фактический URL, который запрашивается. Я думаю, что это будут звонки на Webresource.axd.

0 голосов
/ 23 июня 2011

Я согласен с Грегом, поместите все ваши публичные ресурсы в корень и поместите все защищенные элементы в подпапку.

Ex:

<location path="login.aspx">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>
<location path="subfolderName">
    <system.web>
        <authorization>
            <allow roles="myRole" />
            <deny users="*" />

            <!-- deny unknown users -->
            <deny users="?" />
        </authorization>
    </system.web>
</location>
...