База данных инструмента веб-администрирования с IIS

Я создал веб-сайт для моего университета, который требует членства. Я использовал инструмент веб-администрирования из Visual Studio и создал Users and Rules. Когда я тестирую его из Visual Studio, он работает нормально. Инструмент веб-администрирования автоматически создает базу данных SQL с именем ASPNETDB.MDF в папке App_Data, которая сохраняет данные о членстве. У меня вопрос, будет ли работать база данных, когда я добавлю сайт в IIS? Нужно ли создавать базу данных sql server и добавлять соединение? Пожалуйста, ответьте мне. Это действительно важно. я только хочу очень простое членство.

1 ответ

Вы можете использовать db из /App_Data, как объяснено в этом ответе SO:
ASP.NET: как развернуть App_Data на веб-хосте? - но это зависит от вашего сервера.

При использовании членства я предпочитаю запускать его из отдельной базы данных в SQL / SQL Express, так как тогда у меня есть выбор для запуска сайта IIS и базы данных на разных серверах, если это необходимо. Также лучше для безопасности / масштабирования и т. Д.

После создания базы данных вы можете использовать aspnet_regsql.exe для установки служб членства в базу данных. Обычно он находится здесь - c:\Windows\Microsoft.NET\Framework\\aspnet_regsql.exe. Может работать как графический интерфейс или командная строка:
http://msdn.microsoft.com/en-us/library/x28wfk74.aspx

При запуске Membership из отдельной базы данных вам также необходимо настроить провайдера в web.config. Что-то вроде этого:

<connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="MyMembershipConnectionString" 
    connectionString="Data Source=SERVER123\SQLEXPRESS;Initial Catalog=Database123;Persist Security Info=True;User ID=User123;Password=Password123" providerName="System.Data.SqlClient" />
</connectionStrings>

в разделе :

<roleManager defaultProvider="MySqlRoleProvider" enabled="true" 
    cacheRolesInCookie="true" cookieName=".ASPROLES" cookieTimeout="30" 
    cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All">
  <providers>
    <clear />
    <add name="MySqlRoleProvider" type="System.Web.Security.SqlRoleProvider"
        connectionStringName="MyMembershipConnectionString" applicationName="MyAppName" />
  </providers>
</roleManager>

<membership defaultProvider="MySqlMembershipProvider" userIsOnlineTimeWindow="720">
  <providers>
    <clear />
    <add name="MySqlMembershipProvider" 
         type="System.Web.Security.SqlMembershipProvider" 
         connectionStringName="MyMembershipConnectionString" 
         enablePasswordRetrieval="false" 
         enablePasswordReset="true" 
         requiresQuestionAndAnswer="false" 
         requiresUniqueEmail="true" 
         passwordFormat="Hashed" 
         minRequiredPasswordLength="8" 
         minRequiredNonalphanumericCharacters="0" 
         passwordStrengthRegularExpression="((?=.*\d)(?=.*[a-z]).{6,20})" 
         maxInvalidPasswordAttempts="5" 
         passwordAttemptWindow="30" />
  </providers>
</membership>

Я использовал подобный набор для этого несколько раз без проблем. Если вы используете db из /App_Data, вам не нужно ничего делать с web.config

Другие вопросы по тегам