Функциональность просто прикрепления автономного файла .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>