0

我有一个利用 ASP.Identity 和增强的角色服务的 MVC 5.2 应用程序。所有用户都被分配了一个前缀为这样的角色:内部用户的公司(例如“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*
    }

都收到相同的错误。

任何方向将不胜感激。

4

1 回答 1

0

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

尝试:

@if (Context.User.IsInRole("Corporate"))
{
   "Content to be displayed"
}
于 2015-01-08T06:01:44.413 回答