Asp.net mvc 5 授权错误&x27;角色属性不是当前上下文模型的一部分';
我目前将我的代码从ASP NET MVC 4升级到5。在添加OWIN安全性后,我遇到了一个问题,下面是我使用的代码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&
[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”)]
我希望它能帮助一些和我有同样问题的人