Как проверить соответствие политике авторизации на стороне предстваления?

В приложении ASP.NET CORE определены политики доступа на основе Claims:
builder.Services.AddAuthorization(o =>
{
	o.AddPolicy("APP1", x => x.RequireClaim("ROLE_APP1"));
	o.AddPolicy("APP1_ADMINS", x => x.RequireClaim("ROLE_APP1", "admin"));
	o.AddPolicy("APP1_USERS", x => x.RequireClaim("ROLE_APP1", "user"));
});


Соответственно на контроллере я могу использовать атрибуты для ограничения доступа:
[Authorize(Policy = "APP1_ADMINS")]
public IActionResult Index()
{
	return View();
}


Есть ли возможность использовать эти же политики авторизации непосредственно в представлении или в просто в коде метода (не на уровне атрибутов)?
Например, я хочу формировать навигацию персонализированную согласно правам доступа текущего пользователя... Как выполнить проверку в коде?
<ul class="nav">
	<li><a href="~/">Home</a></li>
	@if(User...) {
		<li><a href="~/edit">Edit</a></li>
	}
</ul>
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы