» Главная
eXcode.ru » Статьи » ASP / ASP.NET
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 8





Forms-аутентификация




При использовании Forms-аутентификации запрос параметров регистрации (например, логина и пароля) происходит в web-форме. Регистрационная страница указывается в файле Web.config. При первом обращении к защищаемым страницам ASP.NET перенаправляет пользователя на страницу для ввода пароля. При успешной регистрации аутентификационные данные сохраняются в виде cookie и при повторном обращении к защищенным страницам регистрация не требуется.
      Для того, чтобы использовать Forms-аутентификацию в файле Web.config в корневой папке приложения нужно указать страницу для ввода пароля:

<authentication mode="Forms">
    <forms loginUrl="Login.aspx" />
</authentication>

      При попытке просмотра защищенной страницы ASP.NET проверяет, есть ли аутентификационных cookie в запросе. Если cookie нет, то запрос перенаправляется на страницу для регистрации, если есть - ASP.NET дешифрует cookie и извлекает из него регистрационную информацию.

      На форме находятся поля для ввода логина и пароля и флажок для сохраняемой регистрации. При нажатии кнопки "Войти" происходит поиск пользователя с таким логином и паролем. Если такой пользователь найден, вызывается функция FormsAuthentication.RedirectFromLoginPage (), в которой указывается идентификатор пользователя и флаг для сохраняемой регистрации. Если же нет - выводится сообщение об ошибке.

protected void btnLogin_Click(object sender, System.EventArgs e)
{
   if (!IsValid) // проверяем правильность введенных данных
      return;

   OleDbConnection connection = GetDbConnection();

   try
   {
      connection.Open();

      OleDbCommand command = new OleDbCommand(string.Format("SELECT id FROM Customers WHERE login='{0}' AND password='{1}'", login, password), connection);

      OleDbDataReader reader = command.ExecuteReader();
      if (!reader.Read()) // пароль или логин неверны
      {
         lblError.Text = "Неверный пароль - попробуйте еще раз";
         return ;
      }

      string id = return reader.GetInt32(0).ToString();

      FormsAuthentication.RedirectFromLoginPage(id, chkbRememberLogin.Checked);
   }
   catch (OleDbException ex)
   {
      lblError.Text = "Ошибка базы данных";
   }
   finally
   { 
      connection.Close();
   }
}

Источник: www.cyberguru.ru

К началу статьи





Добавил: LedWormДата публикации: 2008-02-14 09:01:03
Рейтинг статьи:-1.00 [Голосов 1]Кол-во просмотров: 7156

Комментарии читателей

Всего комментариев: 0
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Какие книги вам больше нравятся?
Приключения
7% (12)
Фантастика и фэнтези
30% (50)
Детективы
5% (8)
Ужасы
0% (0)
Юмористические
1% (2)
Учебники и энциклопедии
12% (20)
Спец. литературу
22% (37)
Я не умею читать :(
17% (28)
Другие
5% (9)

Проголосовало: 166
Погода выполнила недопустимую операцию и завалила Африку снегом...
Рейтинг: 4.5/10 (2)
Посмотреть все анекдоты