Asp.net mvc 4 MVC4成员资格和角色提供者现在最明智的方法是什么

Asp.net mvc 4 MVC4成员资格和角色提供者现在最明智的方法是什么,asp.net-mvc-4,membership-provider,Asp.net Mvc 4,Membership Provider,我们正在MVC4中构建一个新站点。在检查是否允许某人登录时,有一些稍微不寻常的要求,因此在这种情况下,简单地检查用户名、密码和启用状态是不够的(还将检查角色) 我从传统的定制membershipprovider类和roleprovider开始。MVC4不喜欢我这样做: This method cannot be called during the application's pre-start initialization phase. 据我所知,这是由于简单的成员资格提供者和oauth(我对

我们正在MVC4中构建一个新站点。在检查是否允许某人登录时,有一些稍微不寻常的要求,因此在这种情况下,简单地检查用户名、密码和启用状态是不够的(还将检查角色)

我从传统的定制membershipprovider类和roleprovider开始。MVC4不喜欢我这样做:

This method cannot be called during the application's pre-start initialization phase.
据我所知,这是由于简单的成员资格提供者和oauth(我对这个领域不太了解)。解决办法似乎是:

<add key="enableSimpleMembership" value="false"/>
<add key="autoFormsAuthentication" value="false"/>

所以他们的cookie被设置,然后控制器可以使用
[Authorize]
属性?这并没有考虑到
[Authorize(Roles=“admin”)]
,因为如果没有设置角色提供程序,这将抛出一个错误,这又回到了最初的问题,即应该如何做。

这里有一个关于这方面的讨论 这似乎解决了问题,但作为最佳实践,我猜仍然是使用成员资格提供程序,但在custommembership的配置中设置
enableSimpleMembership=false

    public ActionResult Login()
    {
        if(logiclayer.CheckAccess("username", "password"))
        {
              var persistCookie = false;
              FormsAuthentication.SetAuthCookie("userName", persistCookie);
        }
        return View();
    }