ASP.NET Forms Authorization

Я работаю над сайтом, созданным на чистом HTML и CSS, и мне нужен способ ограничить доступ к страницам, расположенным в определенных каталогах на сайте. Решение, которое я придумал, было, конечно, ASP.NET Forms Authorization. Я создал форму входа Visual Studio по умолчанию и настроил пользователей, роли и ограничения доступа с помощью мастера Visual Studio. Проблема в том, что я не могу войти на сайт с учетными данными, которые я установил.

Я использую IIS 7.

24.08.2008 22:14:43
Как происходит сбой входа? У вас есть исключение (желтый экран смерти) или что-то еще?
Will Dean 24.08.2008 22:35:32
5 ОТВЕТОВ

В какой момент вы указали свой логин / пароль? Вы смотрели на таблицы, которые были созданы? Хотя ваш пароль должен быть зашифрован, возможно, стоит просто проверить, действительно ли ваш пользователь создан.

0
24.08.2008 22:36:46

В какой момент вы указали свой логин / пароль? Вы смотрели на таблицы, которые были созданы? Хотя ваш пароль должен быть зашифрован, возможно, стоит просто проверить, действительно ли ваш пользователь создан.

Аутентификация с помощью форм не требует какой-либо формы пользовательской базы данных.

Стив, не могли бы вы вставить в раздел web.config аутентификацию форм, а также любой соответствующий код для используемого вами элемента управления входом ASP.NET.

Здесь пока недостаточно информации для устранения неполадок :)

0
24.08.2008 22:52:53

Насколько я могу судить, раздел web.config довольно бесполезен:

<authentication mode="Forms" />

Я посмотрел в IIS 7, и в разделе «Аутентификация» написано: «Анонимная аутентификация = включена», «Олицетворение ASP.NET = отключено», «Обычная проверка подлинности» = «Отключено», «Проверка подлинности с помощью форм» = «Отключено»

Кроме того, я не внес никаких изменений в код, кроме перетаскивания объекта Login на дизайнер и изменения страницы, на которую он указывает, на index.html.

В настоящее время вход в систему не удается, отображая журнал в тексте ошибки.

РЕДАКТИРОВАТЬ: Ранее, когда я пытался перейти непосредственно к странице, которая ограничена, я получал синюю страницу, говоря, что у меня было недостаточно разрешений. Теперь я могу видеть страницы, которые ограничены без входа в систему, даже если у меня нет доступа.

0
24.08.2008 23:34:52

Я предполагаю (так как у меня нет удобного банкомата IIS7), что вам нужно отключить Anonomyous Auth и включить Forms Auth в разделах IIS7.

2
25.08.2008 02:58:58

Стив,

Я не думаю, что проблема связана с вашими настройками IIS. Поскольку проверка подлинности с помощью форм не основывается на проверке подлинности IIS, вам следует настроить анонимный доступ для своего приложения в IIS, если вы собираетесь использовать проверку подлинности с помощью форм в приложении ASP.NET.

Попробуйте это в вашем web.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
    <authentication mode="Forms" >
      <forms loginUrl="~/login.aspx" defaultUrl="~/">
        <credentials passwordFormat="Clear">
          <user name="YourUsername" password="superSecret" />
        </credentials>
      </forms>
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>
  <system.web>
</configuration>

Существуют более эффективные способы реализации проверки подлинности на основе форм, чем жесткое кодирование имени пользователя и пароля в вашем файле web.config, но это должно помочь вам начать работу.

0
16.05.2009 09:36:07