如何在asp.net 4中将createuserwizard的默认数据库更改为我的数据库?

时间:2011-09-11 11:30:15

标签: c# asp.net sql-server

我正在使用C#asp.net 4的创建用户向导。我想将其默认数据库(即ASPNETDB.mdf)更改为我自己创建的数据库(即test.mdf)。

我该怎么做?还有一件事。

2 个答案:

答案 0 :(得分:1)

该向导将创建一个存储在web.config文件中的连接字符串,该文件位于Web应用程序的根文件夹中。只需打开此文件并相应地更改连接字符串。

以下是一个连接字符串的示例,它在我的一个项目中的外观如何:

<connectionStrings>
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>

所以,你只需要改变文件名。如果需要,您还可以提供数据库的完整路径。

答案 1 :(得分:1)

需要2个步骤。

首先需要运行aspnet_regsql.exe工具,该工具位于[YouWinDrive]:\Windows\Microsoft.NET\Framework\v2.0.50727,并且在您定向任意数据库时在此向导中创建必要的对象。

步骤2:您需要配置您的asp.net会员提供商。您可能知道web.config文件从位于[YouWinDrive]:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG

中的Machine.config文件继承而来

如果查看该文件,您会发现默认的AspNetSqlMembershipProvider是sqlserver express和aspnetDB中的目标:

    <membership>
        <providers>
            <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
        </providers>
    </membership>

因此,您需要在web.config文件中覆盖此成员身份,如下所示:

<membership defaultProvider="MyMembershipProvider">
            <providers>
                <add name="MyMembershipProvider"
                     type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                     connectionStringName="YourConnectionToArbitraryDatabase"
                     enablePasswordRetrieval="true"
                     enablePasswordReset="true"
                     requiresQuestionAndAnswer="true"
                     applicationName="YourAppName"
                     requiresUniqueEmail="false"
                     passwordFormat="Encrypted"
                     maxInvalidPasswordAttempts="5"
                     minRequiredPasswordLength="5"
                     minRequiredNonalphanumericCharacters="0"
                     passwordAttemptWindow="10"
                     passwordStrengthRegularExpression=""/>
            </providers>
        </membership>

您可以根据需要进行更改。