因此,我的网络配置的关键部分如下:
<connectionStrings>
<add name="AppConnection" connectionString="Server=100.100.100.100;Database=AppDB;User Id=user;Password=password;" providerName="System.Data.SqlClient"/>
<add name="MemberConnection" connectionString="Server=100.100.100.100;Database=aspnetdb;User Id=user;Password=password;" providerName="System.Data.SqlClient"/>
</connectionStrings>
并在会员提供者部分内:
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="MemberConnection"
applicationName="Consulate"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression="" />
</providers>
</membership>
如上所述,当我注册时,它会连接到错误的数据库。
但是,如果我将“MemberConnection”的所有实例更改为“DefaultConnection”,则可以正常工作。
为什么必须使用“Default”作为连接字符串名称的一部分?
答案 0 :(得分:2)
在IdentityModels.cs中,ApplicationDbContext的构造函数继承了硬编码的“DefaultConnection”字符串。
将其更改为与aspnetdb(成员资格)相关的连接字符串,并且有效。