Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 5 授权错误&x27;角色属性不是当前上下文模型的一部分';_Asp.net Mvc 5_Authorization_Owin_Roles_Asp.net Identity 2 - Fatal编程技术网

Asp.net mvc 5 授权错误&x27;角色属性不是当前上下文模型的一部分';

Asp.net mvc 5 授权错误&x27;角色属性不是当前上下文模型的一部分';,asp.net-mvc-5,authorization,owin,roles,asp.net-identity-2,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&

我目前将我的代码从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);

        }

    }
[Authorize(Roles=“Admin”)]
公共异步任务测试()
{
var-role=“”;
使用(
var用户管理器=
新建UserManager(新建UserStore(新建ApplicationDbContext()))
{
var rolesForUser=await userManager.GetRolesAsync(User.Identity.GetUserId());
返回“test”+User.Identity.GetUserName()+“”+rolesForUser.ElementAt(0);
}
}
它总是给我错误

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


当我使用
[Authorize(Users=“username”)]
时,它正常工作,只有当我将“用户”更改为“角色”时,它才会出错。我的数据库是SQLServer,使用Entity Framework 5。

我找到了解决自己问题的方法

默认情况下,[Authorize(Roles=“Admin”)]被引用到System.Web.Mvc,它应该被引用到System.Web.Http

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

我希望它能帮助一些和我有同样问题的人