Конфигурация ASP.Net MVC 3 - PullRequest
       7

Конфигурация ASP.Net MVC 3

1 голос
/ 23 сентября 2011

Я хочу спросить о конфигурации ASP.Net. У меня есть проект, который использует ASP.Net MVC3. и я использую членство в моем проекте. на моем сервере баз данных есть 2 базы данных для моего проекта.

  1. aspnetdb, содержит aspnet_membership, aspnet_user, aspnet_roles и т.д. (я использую конфигурацию asp.net)
  2. mydatabase, это для моей базы данных проекта.

теперь мой начальник сказал мне, что он хочет разместить мой проект публично, и сказал мне использовать только одну базу данных. поэтому я должен переместить aspnetdb в мою базу данных. Как я могу сделать это без создания новой таблицы в моей базе данных?

спасибо

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

По умолчанию поставщик членства ASP.NET использует встроенную строку соединения с именем LocalSqlServer, которая выглядит примерно так:

<add name="LocalSqlServer" 
     connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
     providerName="System.Data.SqlClient"/>

и при первом использовании Membership (или при использовании инструмента менеджера веб-конфигурации), aspnetdb.mdf будет создан автоматически. Для первого шага вы можете удалить эту connectionString из web.config с помощью команды clear:

  <connectionStrings>
    <clear/>
    <!-- your other connectionStrings -->
  </connectionStrings>

а также вы должны изменить connectionString на membershipProvider (а также roleProvider, если вы его используете) в web.config файле:

<membership userIsOnlineTimeWindow="20">
  <providers>
    <clear />
    <add
         connectionStringName="YourSpecifiedConnectionString" // your connectionString here
         name="AspNetSqlMembershipProvider" 
         type="System.Web.Security.SqlMembershipProvider" 
         enablePasswordRetrieval="false" 
         enablePasswordReset="true" 
         requiresQuestionAndAnswer="false" 
         requiresUniqueEmail="false" 
         maxInvalidPasswordAttempts="500" 
         minRequiredPasswordLength="1"
         minRequiredNonalphanumericCharacters="0"
         passwordAttemptWindow="10"
         applicationName="/" />
  </providers>
</membership>

<roleManager enabled="true">
  <providers>
    <clear/>
    <add connectionStringName="YourSpecifiedConnectionString" // your connectionString here
         name="AspNetSqlRoleProvider"  
         applicationName="/" 
         type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </providers>
</roleManager>

Для настройки базы данных на использование ASP.NET встроенного поставщика членства вы можете использовать инструмент regsql которая может быть основана здесь:

C:\Windows\Microsoft.NET\Framework\(version that you are using. mine is v4.0.30319)\

В этой папке найдите файл aspnet_regsql.exe и запустите его. Будет показан полезный мастер и поможет вам шаг за шагом настроить новую базу данных. И о вашем последнем вопросе: вам не нужно применять какие-либо изменения в ваш edmx файл! EF работает с таблицами, которые вы ему предоставили, а membershipProvider выполняет свою работу с таблицы, которые ASP.NET предоставлены ему! Молодцы, Молодцы!

0 голосов
/ 23 сентября 2011

Вы должны добавить эти таблицы в свою базу данных.Это довольно просто.Просто используйте инструмент aspnet_regsql для экспорта схемы базы данных в файл SQL и запустите этот файл в своей собственной базе данных.

Инструкция: http://www.xdevsoftware.com/blog/post/Install-ASPNET-Membership-Provider-on-a-Shared-Hosting-Company.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...