15 мая 2014
Кравченко Виктор

Безопасность ASP.NET: Развертывание (публикация в Интернете)

VB.NET MVC ASP.NET MS SQL SQL
01

Вы сделали супер-сайт, воспользовавшись стандартными инструментами реализации безопасности добавили возможность авторизации, с разграничением полномочий пользователей, протестировали, довели до совершенства и нажали волшебную кнопку Publish Web. Заходите на ваш сайт размещенный уже в интернете и с удивлением обнаруживаете, что осуществить вход по логину и паролю не можете...

02

Проблема в том, что при публикации проекта система не публикует ту часть вашего проекта, которая отвечает за авторизацию/безопасность. Связано это с тем, что в автоматическом режиме инструмент ASP.NET Site Administration создает папку App_Data, а в ней создает файл базы данных ASPNETDB.MDF, хранящей информацию о пользователях. На локальном компьютере все хорошо работает, а вот для размещенного на сервере сайта, увы — такая схема не подходит. Поэтому необходимо создать набор таблиц отвечающих за данные пользователей на удаленном сервере, там же где и располагается база данных вашего сайта.

03

Но ничего сложного в создании такого набора таблиц нет — достаточно воспользоваться помощником — утилитой aspnet_regsql.exe (по умолчанию она расположена в папке C:\Windows\Microsoft.NET\Framework\\[Версия\]).

04
05
Если в поле База данных оставить значение <по умолчанию> (<default>), то мастер будет использовать базу данных с именем aspnetdb. Если на указанном сервере её не существует, мастер создает ее, и в ней необходимые таблицы.
06

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

07
База данных с необходимой структурой готова
08

Для переноса существующих данных можно воспользоваться стандартными процедурами импорта/экспорта.

09

Далее для того, чтобы инструмент ASP.NET Site Administration взаимодействовал с новой базой данных, как раньше, необходимо изменить одну строку в файле Web.config:

10 XML
1
2
3
4
5
6
7
<configuration> <connectionStrings> ...
<add name="ApplicationServices" connectionString="Data Source=[имя сервера];Initial Catalog=[имя базы данных];Persist Security Info=True;user id=[имя пользователя];password=[пароль]" providerName="System.Data.SqlClient" />
</connectionStrings> ... </configuration>
11

Теперь, когда все настроено — вы не заметите разницы между тем, как было (с файлом ASPNETDB.MDF на вашем компьютере) и как стало (с базой в интернете).

12

Похожие запросы:

  • Настройка Membership API
  • Вопросы безопасности ASP.NET приложений
  • Использование инструмента ASP.NET Site Administration
  • Как подключить aspnetdb.mdf-базу
  • Развёртывание на сервере ASPNETDB.MDF
  • Visual studio database project and aspnet_regsql.exe
  • Deploying ASP.NET MVC Database to Production
  • How to use ASPNETDB on shared hosting?
  • How to add ASPNETDB.MDF database to generate crystal reports
  • asp.net membership — sql authentication
comments powered by HyperComments