所以我得到了我应该调用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”未找到。
问题是什么?
答案 0 :(得分:3)
WebSecurity.InitializeDatabaseConnection
并未要求您提供连接字符串。它要求您提供连接字符串的名称。然后它将从配置文件中检索连接字符串。
WebSecurity.InitializeDatabaseConnection("conString", "users", "id", "email", autoCreateTables: true);
当您对方法行为不符合预期的原因提出疑问时,read the documentation!它声明了该参数:
包含用户信息的数据库的连接字符串的名称。如果您使用的是SQL Server Compact,则可以是没有.sdf文件扩展名的数据库文件(.sdf文件)的名称。