Самым примитивным образом вы ставите следующее:
@if (User.IsInRole("Domain\Group1"))
{
<div>Only visible for Domain\Group1 users</div>
}
Лучше сделать из этого HtmlHelper
.
Чтобы предотвратить получение ролями именРаспространяясь по всему вашему приложению, вы можете работать с политиками .
Вместо ролей, которые вы используете, вы указываете имя политики в методе действия для настройки доступа к этому методу.
[Authorize(Policy = "MyPolicy")]
public IActionResult DisplaySomething()
{
return View();
}
В представлении вы решаете, следует ли отображать что-либо с помощью проверки с помощью этого имени политики.
@if ((await AuthorizationService.AuthorizeAsync(User, "MyPolicy")).Succeeded)
{
<div>Only visible for users matching the rules defined in policy MyPolicy</div>
}
В ConfigureServices
вы указываете, например,.какие роли должны быть проверены в данной политике.
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthorization(options => {
options.AddPolicy("MyPolicy", policy => {
policy.RequireAuthenticatedUser();
policy.RequireRole("Domain\Group1");
// ...
});
}