2016-11-11 86 views
0

所以,我感到我應該叫WebSecurity.InitializeDatabaseConnection 之前,我打電話的webSecurity類WebSecurity.InitializeDatabaseConnection功能沒有發現我的連接字符串

任何函數的錯誤所以我創造_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> 

現在我得到這個錯誤FR om InitializeDatabaseConncection方法:

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

最新的問題是什麼?

+1

它看起來像InitializeDatabaseConnection方法期待的連接字符串的名稱,而不是字符串本身。 – tattarrattat

回答

3

WebSecurity.InitializeDatabaseConnection不要求您提供連接字符串。它要求您輸入連接字符串的名稱。它會從你的配置文件中檢索連接字符串。

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

當您對某個方法不符合預期的原因有疑問時,read the documentation!它規定了該參數:

包含用戶信息的數據庫的連接字符串的名稱。如果您使用的是SQL Server Compact,則這可以是沒有.sdf文件擴展名的數據庫文件(.sdf文件)的名稱。