2011-09-23 71 views
1

我想问一下关于ASP.Net配置。我有一个使用ASP.Net MVC3的项目。我在我的项目中使用会员资格。在我的数据库服务器中,我的项目有2个数据库。ASP.Net MVC 3配置

  1. ASPNETDB,包含aspnet_membership,aspnet_user,aspnet_roles等(我用asp.net配置)
  2. MyDatabase的,它为我的项目数据库。

现在我的老板告诉我他想公开承载我的项目并告诉我只使用一个数据库。所以我必须将aspnetdb移动到mydatabase。我怎么能做到这一点,而无需在mydatabase中创建新表?

谢谢

+0

你只需要将asp_net表移动到mydatabase中即可。显然你必须在mydatabase中创建这些表,除非你已经拥有了自己的用户模式? – TheCodeKing

+0

感谢代码的回复。但如果我托管我的项目,我可以使用这些表吗?我的意思是我仍然使用两个数据库(因为如果我在mydatabase中创建新表,那么需要做很多事情)。 –

+1

问题是什么?如果您的主机提供商允许,您可以使用两个数据库,或者您可以将这些现有的表移动到一个数据库中,那么有哪些工作很多? – TheCodeKing

回答

1

默认情况下,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> 

而且,你必须改变connectionStringmembershipProvider(也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提供给它!做得好,干得好!

+0

感谢javad为您的答案,其帮助我 –

+0

欢迎您(^_^)并感谢您的接受。如果此答案有帮助,请将其投票。再次感谢你。问候。 –