Авторизация форм ASP.NET

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

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


person Steve    schedule 24.08.2008    source источник
comment
Каким образом не удается войти в систему? У вас выбрасывается исключение (желтый экран смерти) или что-то еще?   -  person Will Dean    schedule 25.08.2008


Ответы (5)


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

person Mark Brackett    schedule 25.08.2008

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

person jdecuyper    schedule 24.08.2008

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

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

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

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

person FlySwat    schedule 24.08.2008

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

<authentication mode="Forms" />

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

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

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

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

person Steve    schedule 24.08.2008

Стив,

Я не думаю, что проблема связана с вашими настройками 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, но это должно сработать для начала работы.

person Brad Crandell    schedule 16.05.2009