ASP.Net MVC アプリで SimpleMembership を機能させようとしています。承認が必要なすべてのコントローラーは、SecureController という基本クラスを拡張します。
[Authorize]
[InitializeSimpleMembership]
[HandleException]
public class SecureController : Controller
{
    protected UserProfile CurrentUser;
    protected override void OnAuthorization(AuthorizationContext filterContext)
    {
        base.OnAuthorization(filterContext);
        var currentuserid = WebSecurity.CurrentUserId;
        var context = new UsersContext();
        CurrentUser = context.UserProfiles.SingleOrDefault(u => u.AuthenticationId == currentuserid);
        if (CurrentUser != null)
        {
            ViewBag.UserName = CurrentUser.Name;
            ViewBag.UserId = CurrentUser.Id;
        }               
    }
}
「「WebSecurity」クラスの他のメソッドを呼び出す前に、「WebSecurity.InitializeDatabaseConnection」メソッドを呼び出す必要があります。この呼び出しは、サイトのルートにある _AppStart.cshtml ファイルに配置する必要があります。WebSecurity.CurrentUserId を呼び出そうとするとエラー メッセージが表示されます。InitializeSimpleMembershipAttribute の OnActionExecuting にブレークポイントを設定しましたが、ブレークポイントがヒットしません。InitializeSimpleMembership が無視されているようです。
FilterConfig にも InitializeSimpleMembershipAttribute への呼び出しを追加しました。FilterConfig.RegisterGlobalFilters は Global.asax から呼び出されますが、これも役に立ちませんでした。
何か案は?