【问题标题】:WebSecurity.InitializeDatabaseConnection Function does not found my connection StringWebSecurity.InitializeDatabaseConnection 函数没有找到我的连接字符串
【发布时间】:2016-11-11 16:39:15
【问题描述】:

所以我得到了我应该调用 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”。

什么问题?

【问题讨论】:

  • 看起来 InitializeDatabaseConnection 方法需要的是连接字符串的名称,而不是字符串本身。

标签: asp.net webforms


【解决方案1】:

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

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

当您对为什么某个方法的行为不符合预期有疑问时,read the documentation!它声明了该参数:

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

【讨论】:

    猜你喜欢
    • 2015-04-05
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    相关资源
    最近更新 更多