C# 从控制器方法内获取用户角色
我构建了一个自定义授权类,该类继承自C# 从控制器方法内获取用户角色,c#,asp.net-mvc,authorization,C#,Asp.net Mvc,Authorization,我构建了一个自定义授权类,该类继承自AuthorizeAttribute。它返回一个enum AccessLevel列表,因为用户可以有多个角色。我修饰了我的控制器方法,如下面的示例,该示例将某些功能仅限于管理员和/或批准者: [MyAuthorization(AccessLevels=new[]{AccessLevel.Admin,AccessLevel.Approver}] 公共操作结果函数() { \\做些事情。。。 } 我的问题是-有没有一种方法可以从某个函数中获取用户的访问级别,而不必
AuthorizeAttribute
。它返回一个enum AccessLevel
列表,因为用户可以有多个角色。我修饰了我的控制器方法,如下面的示例,该示例将某些功能仅限于管理员和/或批准者:
[MyAuthorization(AccessLevels=new[]{AccessLevel.Admin,AccessLevel.Approver}]
公共操作结果函数()
{
\\做些事情。。。
}
我的问题是-有没有一种方法可以从某个函数中获取用户的访问级别,而不必重新获取它们?或者在控制器检查访问级别后,访问级别列表是否丢失?我想您正在寻找:
User.IsInRole("role here")
或
我确实尝试了User.IsInRole(“Admin”),尽管我尝试了,但它总是返回false。对于非标准角色,您需要做些特殊的事情吗?此外,UserManager似乎不存在:
名称“UserManager”在当前上下文中不存在
。
UserManager.FindByNameAsync("name").Roles