我想我对 SimpleMembershipProvider
的理解几乎是 60%,其余的正在了解它的内部运作方式。
您在使用 [InitializeSimpleMembership]
时可以很快发现一些问题。仅在 AccountController(默认模板)中过滤。我认为你在任何地方使用 Memberhsip API 或 WebMatrix.WebSecurity
,您需要确保首先调用此过滤器。
稍后,如果您使用 User.IsInRole
在我的 _Layout.cshtml
.您需要将过滤器应用于所有 Controller ,然后开始在全局中注册它。
但是我才意识到有 LazyInitializer.EnsureInitialized
这使得每个应用程序启动只执行一次初始化。
那么为什么SimpleMembershipInitializer
(在过滤器中)是不是直接在Application_Start 中?
有什么理由使用过滤器吗?
请您参考如下方法:
我相信该模板使用了一个用于数据库初始化的属性,因此如果初始化失败,站点的未验证部分仍然可以工作。
对于大多数实际用途,最好在 App_Start 中完成此操作。