Приложение, которое я создаю, нуждается в нескольких ролях и изначально, кажется, работает нормально: я могу войти в систему с «User1» и после дебюта «IsRole_ModuleAll_Admin» возвращает true:
IdentityUser MyUser = UserManager.Users.FirstOrDefault();
IList<string> MyRoles = await UserManager.GetRolesAsync(MyUser);
bool IsRole_ModuleAll_Admin = MyRoles.Contains("Module: All - Admin"); //True
bool IsRole_ModuleStatus_TechnicianOSC = MyRoles.Contains("Module: Status - TechnicianOSC");
bool IsRole_ModuleStatus_Admin = MyRoles.Contains("Module: Status - Admin");
if (IsRole_ModuleAll_Admin || IsRole_ModuleStatus_TechnicianOSC)
{
<li>
<a href="#StatusSubmenu" data-toggle="collapse" aria-expanded="false" aria-controls="PlannerSubmenu"><i class="fas fa-satellite-dish fa-fw"></i> Status</a>
<ul class="collapse list-unstyled" id="StatusSubmenu">
<li>
<a href=@Url.Action("Last_GGG", "Status")><i class="fas fa-industry fa-fw"></i> GGG</a>
</li>
<li>
<a href=@Url.Action("Last_ASU", "Status")><i class="fas fa-city fa-fw"></i> ASU</a>
</li>
</ul>
</li>
}
Теперь внутри Status /Last_GGG следующий код работает ... но когда я раскомментирую [Authorize (Roles ...)] и комментирую [Authorize], я получаю ошибку идентификации "Доступ запрещен - у вас нет доступа к этому ресурсу".Есть идеи, почему это происходит?
namespace Viewer.Controllers._03_ModuleStatus
{
[Authorize]
//[Authorize(Roles = "Module: All - Admin, Module: Status - TechnicianOSC, Module: Status - Admin")]
public class StatusController : Controller
{
private readonly IGGGRepository _GGGRepository;
public IEnumerable<GGG> ListOfAllGGG;
public StatusController(IGGGRepository GGGRepository)
{
_GGGRepository = GGGRepository;
}
public IActionResult Last_GGG()
{
GGGPlannerViewModel GGGViewModel = new GGGPlannerViewModel();
GGGViewModel.GGGList = _GGGRepository.GGGs;
GGGViewModel.CurrentValues = _GGGRepository.CurrentValuesinDB;
return View(GGGViewModel);
}
}
}