В приложении 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>