SimpleMembershipProvider 不工作
我用 VS2012 開始了一個新的網際網路項目,並試圖稍微重組我的項目,但我似乎無法讓 SimpleMemberhsipProvider 正常工作。基本上,我所做的只是將模型對象與其他幾個項目一起移動到核心項目中。我已經實現了 Ninject 並試圖通過使用儲存庫模式來抽象 Entity 來獲取我的數據。我真的不覺得我對目前項目有太大的改變,但由於某種原因,當我現在啟動應用程序時,我得到:
{“角色管理器功能尚未啟用。”}
框架提供的 ActionFilter 是在以下情況下引發錯誤的地方:
WebSecurity.InitializeDatabaseConnection(“DefaultConnection”, “UserProfile”, “Id”, “UserName”, autoCreateTables: true);
叫做。
這是一些堆棧跟踪:
[ProviderException:角色管理器功能尚未啟用。]
System.Web.Security.Roles.EnsureEnabled() +9561885
System.Web.Security.Roles.get_Provider() +8
WebMatrix.WebData.WebSecurity.InitializeProviders(DatabaseConnectionInfo connect,字元串 userTableName,字元串 userIdColumn,字元串 userNameColumn,布爾 autoCreateTables)+104
WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(字元串 connectionStringName,字元串 userTableName,字元串 userIdColumn,字元串 userNameColumn,布爾 autoCreateTables)+100
InoutBoard.Core.Infrastructure.Filters.SimpleMembershipInitializer.. c:\Users\Kyle\Documents\Visual Studio 2012\Projects\InoutBoard\InoutBoard.Core\Infrastructure\Filters\InitializeSimpleMembershipAttribute.cs:42 中的 ctor()
[InvalidOperationException:無法初始化 ASP.NET 簡單成員資格數據庫。有關詳細資訊,請參閱 <http://go.microsoft.com/fwlink/?LinkId=256588]>
c:\Users\Kyle\Documents\Visual Studio 2012 中的 InoutBoard.Core.Infrastructure.Filters.SimpleMembershipInitializer..ctor() \Projects\InoutBoard\InoutBoard.Core\Infrastructure\Filters\InitializeSimpleMembershipAttribute.cs:46
我在以下連結https://github.com/keroger2k/InoutBoard在 github 上託管程式碼
第一種方式
檢查sphair 的答案(在目前執行緒中)。
第二種方式
將以下程序集添加到
web.config:<system.web> <compilation debug="true" targetFramework="4.5"> <assemblies> <add assembly="WebMatrix.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add assembly="WebMatrix.WebData, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </assemblies> </compilation> </system.web>更新
該
WebMatrix.WebData程序集包含一個啟動方法來初始化成員資格/角色提供程序並啟用 RoleManager (PreApplicationStartCode.Start)。但是 ASP.NET 找不到在你的情況下執行。通過添加這兩行程式碼,我們強制 ASP.NET 在這些程序集中搜尋PreApplicationStartMethodAttribute(s).