Пинягина о. В

Вид материалаДокументы

Содержание


Реляционная модель
НомИзд, НомКат
Конфигурирование приложения
Windows, либо создавать и хранить пользователей, роли и полномочия в нашей собственной базе данных. Используем второй вариант. В
Create or Manage roles
Visual Studio
1   2   3   4   5   6   7   8   9   ...   13

Реляционная модель



Преобразуем ER-модель в реляционную модель. Получим следующие таблицы.


Книга(ISBN, Название, Автор, Цена, Год, Страницы, Обложка, Тип, НомИзд, НомКат) - ISBN будет внешним ключом для таблицы Экземпляр.


Издатель(НомИзд, НазИзд) - столбец НомИзд является внешним ключом для таблицы Книга.


Категория(НомКат, НазКат) - столбец НомКат является внешним ключом для таблицы Книга.


Экземпляр (НомЭкз, Статус, Состояние, ISBN) - НомЭкз будет внешним ключом для таблицы Заявка.


Сотрудник (Логин, Пароль, ФИОСотр, АдрСотр, ТелефСотр, E-mailСотр, Должность) – на самом деле таблица пользователей-сотрудников (точнее, несколько таблиц) автоматически создается в проекте ASP.Net, об этом мы будем говорить подробнее в дальнейшем, а пока примем за первичный ключ сотрудника его Логин.


Читатель(НомБилета, Логин, Пароль, ФИОЧит, Паспорт, ДатаРожд, АдрЧит, ТелефЧит, E-mailЧит) - логин тоже является уникальным, но для удобства сделаем первичным ключом номер билета.


ЗаявкаВыдача(НомБилета, НомЭкз, ДатаЗаявки, ДатаВыдачи, СрокВозврата, ДатаВозврата, ЛогинВыдал, ЛогинПринял) – слабая сущность в составе своего первичного ключа содержит все первичные ключи своих сильных сущностей.

Конфигурирование приложения



Для создания базы данных воспользуемся визуальными возможностями Visual Studio, предусмотренными для администрирования приложения. Выберем Web SiteASP.Net Configuration – ProviderSelect a single provider for all site management dataAspNetSqlProvider, и щелкнем по гиперссылке test. Получим сообщение «Successfully established a connection to the database».

Теперь настроим тип аутентификации. Здесь есть два варианта: либо использовать учетные записи Windows, либо создавать и хранить пользователей, роли и полномочия в нашей собственной базе данных. Используем второй вариант. Выберите Security Select authentication typeFrom the internet и нажмите на кнопку Done. В папке App_data нашего проекта появится файл aspnetdb.mdf – это и есть файл базы данных SQL server.

Теперь будем создавать роли: SecurityEnable roles Create or Manage roles. Создадим 3 роли – librarian, collector, warehouse. Роль читателя будем обрабатывать отдельно.

Для каждой роли нужно назначить права доступа. Сначала в нашем проекте создадим для каждой роли отдельную папку, куда в дальнейшем будем помещать файлы сценариев (если к каким-то сценариям должны иметь доступ разные роли, для таких сценариев тоже можно создать отдельную папку). Затем на вкладке Security будем использовать ссылки Create access rules и Manage access rules. Здесь можно разрешать (allow) или запрещать (deny) доступ разных пользователей и ролей к папкам. Например, для папки librarian (библиотекарь) назначение прав доступа будет выглядеть следующим образом:





Права доступа назначаются в этой таблице снизу вверх. По умолчанию разрешается доступ для всех пользователей (этот режим невозможно отменить, так как он наследуется из родительского каталога). Мы сначала запрещаем доступ для всех пользователей, а затем разрешаем доступ для библиотекаря. Таким образом, кроме библиотекаря, никто другой не сможет запустить сценарии из этого каталога.

При попытке доступа к этому каталогу из любой другой роли будет выполняться автоматическая переадресация на страницу авторизации (login.aspx).

Назначенные нами права доступа сохраняются в файле конфигурации web.config соответствующего каталога и выглядят примерно так:










Теперь создадим, по крайней мере, по одному пользователю для каждой роли. Обратите внимание, что по умолчанию пароль должен содержать не менее 7 символов, и не менее чем одним символ должен быть небуквенным и нецифровым. Не забудьте привязать пользователя к роли, т.е., отметить соответствующий флажок.




У вас может возникнуть вопрос – а где же, собственно, будут сохраняться все эти данные? Для них Visual Studio автоматически создает необходимые таблицы. Откройте в проекте вкладку Server и посмотрите, какие таблицы имеются по умолчанию в нашей базе данных:
  • роли хранятся в таблице aspnet_Roles,
  • пользователи – в таблицах aspnet_Users и aspnet_Membership,
  • связь пользователей с ролями – в таблице apsnet_UsersInRoles.

Вы, наверное, обратили внимание, что у пользователей нет ни ФИО, ни должности, ни адреса? Для этих и прочих дополнительных полей мы будем в дальнейшем использовать такое понятие, как Profile. Отложим этот вопрос до следующего этапа.