Я работаю над сайтом, созданным на чистом HTML и CSS, и мне нужен способ ограничить доступ к страницам, расположенным в определенных каталогах на сайте. Решение, которое я придумал, было, конечно, ASP.NET Forms Authorization. Я создал форму входа Visual Studio по умолчанию и настроил пользователей, роли и ограничения доступа с помощью мастера Visual Studio. Проблема в том, что я не могу войти на сайт с учетными данными, которые я установил.
Я использую IIS 7.
В какой момент вы указали свой логин / пароль? Вы смотрели на таблицы, которые были созданы? Хотя ваш пароль должен быть зашифрован, возможно, стоит просто проверить, действительно ли ваш пользователь создан.
В какой момент вы указали свой логин / пароль? Вы смотрели на таблицы, которые были созданы? Хотя ваш пароль должен быть зашифрован, возможно, стоит просто проверить, действительно ли ваш пользователь создан.
Аутентификация с помощью форм не требует какой-либо формы пользовательской базы данных.
Стив, не могли бы вы вставить в раздел web.config аутентификацию форм, а также любой соответствующий код для используемого вами элемента управления входом ASP.NET.
Здесь пока недостаточно информации для устранения неполадок :)
Насколько я могу судить, раздел web.config довольно бесполезен:
<authentication mode="Forms" />
Я посмотрел в IIS 7, и в разделе «Аутентификация» написано: «Анонимная аутентификация = включена», «Олицетворение ASP.NET = отключено», «Обычная проверка подлинности» = «Отключено», «Проверка подлинности с помощью форм» = «Отключено»
Кроме того, я не внес никаких изменений в код, кроме перетаскивания объекта Login на дизайнер и изменения страницы, на которую он указывает, на index.html.
В настоящее время вход в систему не удается, отображая журнал в тексте ошибки.
РЕДАКТИРОВАТЬ: Ранее, когда я пытался перейти непосредственно к странице, которая ограничена, я получал синюю страницу, говоря, что у меня было недостаточно разрешений. Теперь я могу видеть страницы, которые ограничены без входа в систему, даже если у меня нет доступа.
Я предполагаю (так как у меня нет удобного банкомата IIS7), что вам нужно отключить Anonomyous Auth и включить Forms Auth в разделах IIS7.
Стив,
Я не думаю, что проблема связана с вашими настройками 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, но это должно помочь вам начать работу.