Хранилище удостоверений в web.config

При использовании аутентификации с помощью форм у вас имеется выбор, где хранить удостоверения пользователей. Вы можете хранить их в определенном файле или в базе данных; в принципе вы можете хранить их где угодно, если предусмотреть код для проверки имени и пароля пользователя, которые он вводит на странице регистрации по значениям, находящимся в хранилище.

Проще всего хранить удостоверения пользователей непосредственно в файле web.config, в подэлементе <credentials/> конфигурационного дескриптора <forms/>, представленном ранее.

<authentication mode="Forms">
  <!-- Подробные опции конфигурации -->
  <forms name="MyCookieName"
      loginUrl="MyLogin.aspx"
      timeout="20">
    <credentials passwordFormat="Clear">
      <user name="Admin" password="(Admin1)"/>
      <user name="Mario" password="Szpuszta"/>
      <user name="Matthew" password="MacDonald"/>
    </credentials>
  </forms>
</authentication>

На заметку! Во-первых, применение web.config как хранилища удостоверений допустимо для простых решений с несколькими пользователями. В более крупных сценариях вы должны применять Membership API, описанный в главе 21. Во-вторых, вы можете подвергнуть хешированию значения паролей, сохраненных в файле web.config. Хеширование — это не более чем однонаправленное шифрование паролей. Это значит, что пароли будут зашифрованы таким образом, что их невозможно будет расшифровать. Подробнее о правильном хешировании паролей при создании пользовательского поставщика Membership вы узнаете в главе 26.

Закрытие доступа анонимным пользователям

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

В главе 23 детально описывается процесс авторизации. А пока вы используете простую технику запрета доступа всем не аутентифицированным пользователям. Чтобы сделать это, необходимо применить элемент <authorization> в файле web.config, чтобы добавить новое правило авторизации, как показано ниже:

<configuration>
  <system.web>
    <!-- Другие настройки опущены. -->
    <authorization>
      <deny user="?" />

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

838

Hosted by uCoz