Совет. В сложном приложении ваша страница регистрации вообще может не быть страницей. Вместо этого она может быть отдельной частью другой страницы — отдельным фреймом HTML или отдельно закодированным пользовательским элементом управления. Используя такую технику, можно сохранять элементы управления регистрацией и выходом видимыми на каждой странице приложения. Каркас Membership API включает в себя готовые к применению элементы управления, обеспечивающие такую функциональность.

Хеширование паролей в web.config

Аутентификация форм включает возможность хранения паролей в различных форматах. В разделе конфигурации <credentials/> формат пароля указывается атрибутом passwordFormat, который может принимать три возможных значения:

При использовании хешированной версии паролей вы должны написать инструмент или некоторый код, который будет хешировать пароли и сохранять их в файле web.config. Для сохранения пароля вы должны использовать метод FormsAuthentication.HashPasswordForStoringInConfigFile вместо передачи пароля в виде простого текста:

string hashedPwd = FormsAuthentication.HashPasswordForStoringInConfigFile(
    clearTextPassword, "SHA1");

Первый параметр специфицирует пароль в виде открытого текста, а второй — используемый алгоритм хеширования. Результатом вызова метода является хешированная версия пароля.

Если вы хотите модифицировать пользователей, сохраненных в web.config, как показано ранее, вы должны использовать API-интерфейс конфигурации среды .NET Framework. Вы не можете редактировать этот раздел с помощью Web-ориентированного инструмента конфигурирования. Следующий фрагмент кода показывает, как вы можете модифицировать этот раздел с помощью API-интерфейса конфигурации:

Configuration MyConfig = WebConfigurationManager.OpenWebConfiguration{"~/");
ConfigurationSectionGroup SystemWeb = MyConfig.SectionGroups ["system.web"];
AuthenticationSection AuthSec =
   (AuthenticationSection)SystemWeb.Sections["authentication"];
AuthSec.Forms.Credentials.Users.Add(
   new FormsAuthenticationUser(UserText.Text, PasswordText.Text));
MyConfig.Save();

предыдущая    следующая страница    вначало главы    оглавление

844

Hosted by uCoz