默认情况下,ASP.NET成员资格提供使用内置的connectionString命名LocalSqlServer
这是这样的:
<add name="LocalSqlServer"
connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient"/>
,当你使用Membership
首次(或者当您使用Web配置管理器工具时),aspnetdb.mdf
将自动创建。对于第一个步骤中,您可以通过clear
命令从web.config
删除此connectionString
:
<connectionStrings>
<clear/>
<!-- your other connectionStrings -->
</connectionStrings>
而且,你必须改变connectionString
为membershipProvider
(也roleProvider
如果您使用它)在web.config
文件:
<membership userIsOnlineTimeWindow="20">
<providers>
<clear />
<add
connectionStringName="YourSpecifiedConnectionString" // your connectionString here
name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
maxInvalidPasswordAttempts="500"
minRequiredPasswordLength="1"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<roleManager enabled="true">
<providers>
<clear/>
<add connectionStringName="YourSpecifiedConnectionString" // your connectionString here
name="AspNetSqlRoleProvider"
applicationName="/"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
对于配置数据库使用ASP.NET内置的成员资格提供商,您可以使用regsql工具 这可以在这里创建:
C:\Windows\Microsoft.NET\Framework\(version that you are using. mine is v4.0.30319)\
在此文件夹中,找到aspnet_regsql.exe
文件并运行它。将显示一个有用的向导,并且 可以帮助您逐步配置新的数据库。关于你的最后一个问题:你不得将 更改为你的edmx
文件! EF使用您提供给它的表格,并且membershipProvider
通过 表格ASP.NET提供给它!做得好,干得好!
你只需要将asp_net表移动到mydatabase中即可。显然你必须在mydatabase中创建这些表,除非你已经拥有了自己的用户模式? – TheCodeKing
感谢代码的回复。但如果我托管我的项目,我可以使用这些表吗?我的意思是我仍然使用两个数据库(因为如果我在mydatabase中创建新表,那么需要做很多事情)。 –
问题是什么?如果您的主机提供商允许,您可以使用两个数据库,或者您可以将这些现有的表移动到一个数据库中,那么有哪些工作很多? – TheCodeKing