WebSecurity.InitializeDatabaseConnection函数找不到我的连接字符串

时间:2016-11-11 16:39:16

标签: asp.net webforms

所以我得到了我应该调用WebSecurity.InitializeDatabaseConnection的错误 在我调用webSecurity类的任何函数之前

所以我创建了_AppStart.cshtml并将此代码放在其中:

@using System.Configuration;
@{
    string connString = ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
    WebSecurity.InitializeDatabaseConnection(connString, "users", "id", "email", autoCreateTables: true);

}

在Web.Config中我得到了

<appSettings>
   <add key="enableSimpleMembership" value="true" />
    </appSettings>

  <connectionStrings>
    <add name="conString" providerName="System.Data.SqlClient"
      connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=sales;Integrated Security=True;Pooling=False"/>
    </connectionStrings>

现在我从InitializeDatabaseConncection方法中得到了这个错误:

连接字符串“Data Source =(local)\ SQLEXPRESS; Initial Catalog = sales; Integrated Security = True; Pooling = False”未找到。

问题是什么?

1 个答案:

答案 0 :(得分:3)

WebSecurity.InitializeDatabaseConnection并未要求您提供连接字符串。它要求您提供连接字符串的名称。然后它将从配置文件中检索连接字符串。

WebSecurity.InitializeDatabaseConnection("conString", "users", "id", "email", autoCreateTables: true);

当您对方法行为不符合预期的原因提出疑问时,read the documentation!它声明了该参数:

  

包含用户信息的数据库的连接字符串的名称。如果您使用的是SQL Server Compact,则可以是没有.sdf文件扩展名的数据库文件(.sdf文件)的名称。