我有一個MVC 5.2應用程序,它利用了ASP.Identity和增強的角色服務。所有用戶都被分配了一個前綴如下的角色:用於內部用戶的公司(例如「CorporateAdmin」)和用於外部用戶的客戶端(例如「ClientAdmin」)。通過Role.GetRolesforUser在應用程序中限制內容
我有我只想在視圖中顯示的內容,只有經過身份驗證的外部客戶端。我已經嘗試了多種以下格式:
@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*
}
所有receivin g同樣的錯誤。
任何方向將不勝感激。
邏輯是有缺陷的; GetRoles返回一個角色列表。你應該檢查每個角色,而不是檢查「公司」是其中一個角色 –
對。但是不應該列出,如果其中包含「企業」一詞觸發布爾假? –
是的。這就是爲什麼我沒有發佈這個答案。我懷疑大括號之間的代碼。你可以發佈或只是測試沒有if。 –