Websecurity没有使用正确的数据库

时间:2013-02-21 07:42:16

标签: c# asp.net-mvc-4 simplemembership

我使用VS2012,SQLExplress,最新的.net版本,代码优先实体框架和迁移构建一个简单的webb应用程序。我使用VS2012中的标准MVC4模板构建,该模板使用新的简单成员资格作为默认值。

我的问题是我无法让Websecurity类使用我创建的数据库。我在我的Glabal.asax.cs中使用了这段代码:

WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(
"DefaultConnection",
"UserProfile",
"UserId",
"UserName",
autoCreateTables: true);

我已尝试在迁移种子方法中运行此代码段,但结果相同。

我的connectionstring看起来像这样

<add name="DefaultConnection" connectionString="Data Source=localhost\SQLEXPRESS;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False" providerName="System.Data.SqlClient" />

当我使用autoCreateTables: true参数运行初始化程序时,initalizer会创建一个仅在VS2012中可见的新连接。

这张图显示了一个名为SecurityConnection2的连接,因为我试图强制websecurity使用另一个连接字符串,但其行为与使用DefaultConnection时的行为相同。 正如您所看到的,它会在此新连接中创建所有表,并且我无法在数据库中的任何位置找到tats表。

如果我改为使用autoCreateTables: false,初始化程序将抛出一条错误,指出UserProfile表不存在。

在所有示例和教程中,我读过这个只是开箱即用,但我不能让它工作。

可能有一个简单的解决方案,但我没有看到它,我会感激这里的任何帮助。

1 个答案:

答案 0 :(得分:0)

问题的答案是连接字符串不包含“初始目录”。

相关问题