我有一个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*
}
所有人都收到同样的错误。
任何方向都会受到高度赞赏。
答案 0 :(得分:0)
我认为,这个错误意味着GetRolesForUser
返回一个字符串数组,而不是字符串列表。数组没有Contains
方法。
尝试:
@if (Context.User.IsInRole("Corporate"))
{
"Content to be displayed"
}