【问题标题】:Websecurity not using correct database网络安全未使用正确的数据库
【发布时间】:2013-02-21 07:42:16
【问题描述】:

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

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

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

我也尝试在迁移种子方法中运行这个 sn-p,但结果相同。

我的连接字符串是这样的

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

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 2011-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多