использование контроля входа в систему с сервером SQL (не экспресс) - PullRequest
1 голос
/ 08 октября 2011

Я установил Visual Studio 2008 Professional (обновлен с пакетом обновления 1), затем я удалил SQL Server 2005 Express и установил SQL Server 2005 Standard.

теперь я не могу добавить «базу данных SQL Server» в проект - там написано Для подключения к файлам SQL Server (* .mdf) требуется, чтобы SQL Server Express 2005 работал правильно.

Разве это не совместимо со стандартной версией SQL Server?

И элементы управления входом также не работают-
Инструмент веб-администрирования говорит Невозможно подключиться к базе данных SQL Server

Также пробовал с утилитой командной строки aspnet_regsql .. не работает .. (на самом деле я не знаю, что делать после создания базы данных сервера SQL через 'утилиту командной строки aspnet_regsql')

Пожалуйста, предоставьте решение для моей проблемы, прежде чем кто-то закроет этот вопрос или отметки для удаления; P:)

1 Ответ

2 голосов
/ 08 октября 2011

Функциональность просто прикрепления автономного файла .mdf в качестве базы данных действительно доступна в Express выпусках SQL Server * только 1006 * .

В любом другом случае вы должны создать базу данных на экземпляре SQL Server и ссылаться на нее по имени базы данных , а не по имени файла .mdf.

Для создания этих таблиц и хранимых процедур, необходимых для подсистемы членства и роли ASP.NET, необходимо использовать утилиту aspnet_regsql для своего экземпляра SQL Server.Вы сказали, что не работает - как не работает ??Вы получили ошибку ??Если это так: какая ошибка ??

См. Документы MSDN на aspnet_regsql для получения подробных сведений о том, как его использовать.Чтобы создать подсистему членства и роли ASP.NET, используйте:

aspnet_regsql -S (your server name here) -E -A mr

-E использует интегрированную защиту (например, ваш текущий вход в Windows) для подключения к SQL Server - этим учетным записям пользователей должно быть достаточно разрешений для этихоперации, конечно!Если вам нужен конкретный пользователь SQL Server, для этого есть два параметра -U (username) -P (password).

Когда у вас есть все это, вам также нужно настроить свою подсистему членства и роли ASP.NET на собственно использовать ту новую базу данных (ASPNETDB), которая была создана на вашем SQL Server.По умолчанию они используют файл aspnetdb.mdf, прикрепленный к вашему экземпляру SQL Server Express.Поскольку вы это изменили, вам необходимо обновить свою конфигурацию!См. , как это сделать подробно на MSDN

Шаг 1: добавить строку подключения к вашей вновь созданной базе данных

В вашем web.configили app.config, добавьте допустимую строку подключения к вновь созданной базе данных членства / роли ASP.NET - что-то вроде:

<configuration>
   <connectionStrings>
      <add name="ASPNETDB_Connection" 
           connectionString="Server=YourServer;database=aspnetdb;Integrated Security=SSPI;" />
  </connectionStrings>

Шаг 2: - добавьте действительную конфигурацию дляПодсистема членства ASP.NET и ссылка на новую строку подключения, которую вы только что добавили на шаге 1;что-то вроде:

<configuration>
   <system.web>
      <membership defaultProvider="YourProvider" userIsOnlineTimeWindow="15">
          <providers>
             <clear />
             <add name="YourProvider" 
                  type="System.Web.Security.SqlMembershipProvider" 
                  connectionStringName="ASPNETDB_Connection"
                  applicationName="MyApplication"
                  enablePasswordRetrieval="false" enablePasswordReset="true"
                  requiresQuestionAndAnswer="true" requiresUniqueEmail="true"
                  passwordFormat="Hashed" />
          </providers>
      </membership>

Шаг 3: сделать то же самое для подсистемы ролей:

<configuration>
   <system.web>
      <roleManager defaultProvider="YourProvider" enabled="true" cacheRolesInCookie="true" >
          <providers>
             <clear />
             <add name="YourProvider" 
                  type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"                 
                  connectionStringName="ASPNETDB_Connection"
                  applicationName="MyApplication" />
          </providers>
      </roleManager>
...