Использование контроля входа в систему с сервером 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>