Использование контроля входа в систему с сервером SQL (не экспресс)

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

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

Разве это не соответствует версии SQL Server Standard?

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

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

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

1 ответ

Решение

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

В любом другом случае вы должны создать базу данных на экземпляре 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. По умолчанию они используют 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>