在应用程序中通过Role.GetRolesforUser限制内容

时间:2015-01-08 05:52:16

标签: asp.net-mvc-5 asp.net-mvc-5.2

我有一个MVC 5.2应用程序,它利用了ASP.Identity和增强的角色服务。为所有用户分配一个前缀如下的角色:内部用户的公司(例如“CorporateAdmin”)和外部用户的客户端(例如“ClientAdmin”)。

我有内容,我只希望在视图中显示只有经过身份验证的外部客户端。我尝试了以下各种格式:

@if (Request.IsAuthenticated && !Roles.GetRolesForUser().Contains("Corporate"))
    {
         *Content to be displayed*
    }

返回的错误消息是“CS0201:只能将赋值,调用,递增,递减,等待和新对象表达式用作语句。

我也尝试过:

@if (Request.IsAuthenticated && Roles.GetRolesForUser().Contains("Corporate") == false)
    {
        *Content to be displayed*
    }

@if (Request.IsAuthenticated && User.IsInRole("CorporateAdmin") == false)
    {
        *Content to be displayed*
    }

所有人都收到同样的错误。

任何方向都会受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

我认为,这个错误意味着GetRolesForUser返回一个字符串数组,而不是字符串列表。数组没有Contains方法。

尝试:

@if (Context.User.IsInRole("Corporate"))
{
   "Content to be displayed"
}