Я работаю над приложением Vue Js с Netcore 2.0 и Azure AD для аутентификации, я уже добавляю аутентификацию в свое приложение и использую авторизацию, чтобы разрешить доступ к различным контроллерам моего API.
[Authorize(Policy = "basusers")]
Мой HomeController использует метод Authorize, который заставляет всех пользователей входить в систему с использованием своих учетных данных.
Мой вопрос из моего приложения Vue, как я могу сказать
Если этот пользовательв группе X не показывать эту опцию в меню или не разрешать доступ к этому представлению.
Любые хорошие примеры службы авторизации.
StartUP.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(sharedOptions =>
{
sharedOptions.DefaultScheme =
CookieAuthenticationDefaults.AuthenticationScheme;
sharedOptions.DefaultChallengeScheme =
OpenIdConnectDefaults.AuthenticationScheme;
})
.AddAzureAd(options => Configuration.Bind("AzureAd", options))
.AddCookie();
services.AddMvc();
services.AddAuthorization(options =>
{
options.AddPolicy("FacultyStaffOnly", policy =>
policy.RequireClaim("groups", "a1f5b403-
9be903c60eed", "2a-d1ebd10d8d54"));
});
}
Пример HomeController
//[Microsoft.AspNetCore.Authorization.Authorize]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
public IActionResult Error()
{
return View();
}
}
Пример Router JS (Как я могу фильтровать, если пользователь не является "basusers", не отображать меню администратора и не предоставлять доступ.)
export const routes = [
{ name: 'InquiryForm', path: '/', component: InquiryForm, display:
'Home',
icon: 'home' },
{ name: 'AdminInquiry', path: '/AdminInquiry', component: AdminInquiry,
display: 'Admin', icon: 'list' },
{ name: 'Profile', path: '/Profile/:lastName', component: Profile },
{ name: 'Application', path: '/Application', component: Application }
]