Спонсор: Microsoft
Опубликован: 30.01.2013 | Доступ: свободный | Студентов: 1179 / 138 | Длительность: 17:23:00
Теги: .net, ajax, asp, www, интранет
Лекция 11:

Безопасность приложений ASP.NET

< Лекция 10 || Лекция 11: 12 || Лекция 12 >

Элементы управления

Модель безопасности ASP.NET предлагает готовые механизмы по организации безопасности приложения, предоставляя для этого нужные объекты, позволяя их настраивать и адаптировать под потребности приложения. Для того, чтобы пользователь мог взаимодействовать с системой безопасности, необходимо построить для нее пользовательский интерфейс. Это означает, что если приложение использует при работе механизм аутентификации, то пользователь должен иметь возможность указать имя и пароль. Кроме того, часто требуется отобразить пользователю информацию о том, выполнен ли вход в систему, или пользователь еще не аутентифицирован.

Для этих задач можно разработать собственный интерфейс пользователя, используя базовые элементы управления ASP.NET. Однако, в этом случае программисту необходимо будет разработать программный код для обеспечения взаимодействия этих элементов управления и системы безопасности. Для облегчения этой задачи платформа ASP.NET содержит ряд готовых элементов управления, в которых уже реализована вся необходимая логика.

При использовании Membership API можно использовать стандартные элементы управления для визуализации работы с аутентификацией пользователя и управления данными безопасности. Для этого существует набор стандартных элементов управления по управлению безопасностью:

  • элемент управления Login предназначен для входа в систему. Он представляет собой два поля ввода – для имени пользователя и пароля, и кнопку входа в систему;
  • элемент управления LoginView позволяет отображать различную информацию в двух режимах – если пользователь аутентифицирован или если пользователь анонимный. Для каждого случая можно задать собственный шаблон;
  • элемент управления PasswordRecovery представляет собой элемент, который позволяет восстановить забытый пароль и, используя Membership API, отправить его пользователю по электронной почте;
  • элемент управления LoginStatus позволяет вывести ссылку с текстом "Вход", если вход не выполнен или ссылку с текстом "Выход", если вход выполнен. Обычно такая ссылка располагается на каждой странице;
  • элемент управления LoginName позволяет отобразить имя активного пользователя, который вошел в систему;
  • элемент управления CreateUserWizard представляет собой мастер для создания нового пользователя, в который входят все необходимые поля;
  • элемент управления ChangePassword представляет собой элемент управления для смены пароля. В рамках этого элемента управления содержатся поля для ввода текущего и нового пароля с подтверждением.

Наиболее часто используется элемент управления Login. Он позволяет пользователю ввести имя пользователя и пароль. Для размещения элемента управления используется следующая несложная разметка.


Если провайдер Membership API сконфигурирован корректно, то для работы элемента управления Login не требуется никаких дополнительных настроек. Если для входа в систему требуется использовать провайдер, отличный от провайдера, используемого по умолчанию, то его имя можно указать в свойстве MembershipProvider.

Внешний вид элемента управления Login представляется следующим образом.


Если при работе приложения требуется отображать какую-либо специфическую информацию в зависимости от того, выполнен ли вход в систему, можно использовать элемент управления LoginView. Этот элемент управления позволяет определить содержимое для двух случаев:

  • пользователь выполнил вход в систему;
  • пользователь не выполнил вход в систему.

Для обеих ситуаций этот элемент управления содержит шаблоны, которые можно переопределить – AnonymousTemplate и LoggedInTempalte. В зависимости от того, вошел ли пользователь в систему будет выбран тот или иной шаблон.


При определении шаблонов также можно использовать другие вложенные элементы управления.

Если в приложении требуется отобразить имя текущего пользователя, то можно использовать элемент управление LoginName. Этот элемент управления также использует текущий провайдер MembershipAPI для определения имени пользователя.


Наконец, если пользователь еще не вошел в систему, необходимо сделать ссылку на страницу, в рамках которой он сможет ввести имя пользователя и пароль. Для реализации этого сценария можно использовать элемент управления LoginStatus.


Логика этого элемента управления заключается в следующем:

  • если пользователь еще не вошел в систему, то на странице отображается текст "Войти" со ссылкой на страницу для указания имени пользователя и пароля;
  • если пользователь уже вошел в систему, то на странице отображается текст "Выйти" с соответствующей ссылкой.

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

Краткие итоги

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

Контрольные вопросы

  • Какие виды угроз существуют для веб-приложения?
  • Как защищаться от каждого вида угроз?
  • Что такое DoS-атака?
  • Каким образом производится перехват конфиденциальной информации?
  • Каким образом производится подмена данных?
  • Какой протокол используется для обеспечения шифрования данных, передающихся по каналу передачи данных в рамках HTTP-взаимодействия?
  • Как устроена система безопасности ASP.NET?
  • Что такое страж?
  • Что такое аутентификация?
  • Что такое авторизация?
  • Какие виды аутентификации существуют в ASP.NET?
  • Что такое Membership API?
  • Для каких целей приложения используют Membership API?
  • Какие элементы управления ASP.NET позволяют легко построить пользовательский интерфейс для взаимодействия с Membership API?
< Лекция 10 || Лекция 11: 12 || Лекция 12 >
Марина Воробьева
Марина Воробьева
Виктория Ткаченко
Виктория Ткаченко

Проигрыватель не работает. После нажатия кнопки Play ничего не происходит.

Андрей Коробейников
Андрей Коробейников
Россия, Новосибирск, Сибирский государственный университет телекоммуникаций и информатики, 1999
Вадим Трунов
Вадим Трунов
Россия