我目前将我的代码从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。
答案 0 :(得分:0)
我找到了如何解决自己的问题,
默认 [授权(角色=“管理员”)] 被 System.Web.Mvc 引用,应该引用 System.Web。 HTTP
所以我将代码更改为 [System.Web.Http.Authorize(Roles =“Admin”)]
我希望它可以帮助一些与我有同样问题的人。