【问题标题】:AspNet.Idendity: determine whether the user is in a specified RoleAspNet.Idendity:判断用户是否处于指定角色
【发布时间】:2017-12-04 23:56:28
【问题描述】:

我正在使用 MVC5 编写 WebApp,我将检查用户是否处于指定角色中。

因此我尝试使用User.IsInRole("Role"),但它会引发异常。 我尝试过导入 AspNet.Identity 并使用用户管理器,但找不到方法 IsInRoleAsync(userId, role):

@using Microsoft.AspNet;
@if(UserManager.IsInRoleAsync(user.Id, "Role")){
    // some code
}

请注意,我在 cshtml 文件和 razor 语法中使用它。我希望你能帮助我。

提前谢谢你

【问题讨论】:

  • 错误信息是什么?

标签: asp.net asp.net-mvc razor asp.net-identity role-manager


【解决方案1】:

您好,您可以使用以下代码轻松查看:

例如:view1.cshtml

@if (Request.IsAuthenticated && User.IsInRole("Administrators"))
{
     //Any code

}

【讨论】:

  • 不幸的是,它对我不起作用。它抛出一个 SqlServerException。
【解决方案2】:

代码UserManager.IsInRoleAsync 不仅仅在 Razor 视图 (cshtml) 中工作。您必须实例化一个 ApplicationUserManager 实例,通常称为“UserManager”,并拥有一个有效的 ApplicationUser(“user”)对象。

您最好在控制器中完成这项工作,并使用 View Model 或 ViewBag 或 ViewData 等其他方式将其传递给视图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 2015-05-25
    • 2011-01-22
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多