仅将独立.mdf文件附加为数据库的功能确实仅在 SQL Server的Express版本中可用。
在任何其他情况下,您应该做的是在 SQL Server 实例上创建数据库,并通过其数据库名称而不是 .mdf 文件名来引用它。
为了创建 ASP.NET 成员资格和角色子系统所需的那些表和存储过程,您需要aspnet_regsql针对您的 SQL Server 实例使用该实用程序。你说那行不通-它怎么行不通?有没有报错??如果是这样:什么错误?
有关如何使用它的详细信息,请参阅aspnet_regsql 上的 MSDN 文档。要创建 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.configorapp.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>