私の理解はSimpleMembershipProvider
ほぼ 60% で、残りは内部的にどのように機能するかを知ることです。
[InitializeSimpleMembership]
AccountController (デフォルトのテンプレート) でのみフィルターを使用すると、すぐに問題が見つかります。Memberhsip API または を使用する場所ではどこでもWebMatrix.WebSecurity
、このフィルターが最初に呼び出されるようにする必要があると思います。
後で、User.IsInRole
で を使用する場合は_Layout.cshtml
、すべてのコントローラーにフィルターを適用してから、 でグローバルに登録する必要があります。
LazyInitializer.EnsureInitialized
しかし、アプリの起動ごとに初期化が 1 回だけ実行されるものがあることに気づきました。
では、なぜSimpleMembershipInitializer
(フィルター内) が Application_Start 内に直接存在しないのでしょうか? フィルターを使用する理由はあるのでしょうか?
ベストアンサー1
テンプレートでは、データベースの初期化に属性が使用されているため、初期化に失敗してもサイトの認証されていない部分は引き続き機能すると考えられます。
最も実用的な目的のためには、これを App_Start で実行するのが最善です。