授权错误,' RoleEntity不是当前上下文模型的一部分'

时间:2015-06-04 13:30:41

标签: asp.net-mvc-5 authorization owin roles asp.net-identity-2

我目前将我的代码从ASP NET MVC 4升级到5.添加OWIN安全后出现问题,下面是我使用的代码。

    [Authorize(Roles="Admin")]
    public async Task<string> test()
    {
        var role = "";
        using (
        var userManager =
            new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())))
        {
            var rolesForUser = await userManager.GetRolesAsync(User.Identity.GetUserId());
            return "test " + User.Identity.GetUserName() + " " + rolesForUser.ElementAt(0);

        }

    }

它总是给我错误

  

实体类型RoleEntity不是当前上下文的模型的一部分。

当我使用[Authorize(Users="username")]时它正常工作,只有当我更改用户&#39;时才会出错。进入&#39;角色&#39;。我的数据库是SQLServer并使用Entity Framework 5。

1 个答案:

答案 0 :(得分:0)

我找到了如何解决自己的问题,

  

默认 [授权(角色=“管理员”)] System.Web.Mvc 引用,应该引用 System.Web。 HTTP

所以我将代码更改为 [System.Web.Http.Authorize(Roles =“Admin”)]

我希望它可以帮助一些与我有同样问题的人。