Я провел много исследований, но до сих пор не уверен, правильно ли я делаю это. Лучшего ресурса я нашел здесьПолитика авторизации в Identity 3 MVC 6
http://leastprivilege.com/2015/10/12/the-state-of-security-in-asp-net-5-and-mvc-6-authorization/
Учитывая класс ApplicationUser расширен, чтобы включить в список разрешенных номеров счетов, я хочу, чтобы ограничить пользователь только просматривать выписки (и другие действия, основанных) на свои уполномоченные счетах). Я бы подумал, что это очень распространенный дизайн, однако большинство статей в сети относятся к предыдущим версиям личности.
(PS Я инъекционный UserManager в конструкторе контроллера)
Вот мое действие
public IActionResult GetStatement(int accountNo,DateTime startDate,DateTime endDate)
{
var user = userManager.Users
.Include(u => u.AuthorisedAccounts)
.Where(u => u.Id == User.GetUserId())
.FirstOrDefault();
if (user.AuthorisedAccounts != null)
{
foreach (var account in user.AuthorisedAccounts)
{
if (account.AccountNo == accountNo)
return View(statementService.GetStatement(accountNo, startDate, endDate, 0));
}
}
return HttpUnauthorized();
}
Я не могу избавиться от ощущения, что есть лучший способ? В основном я хочу авторизовать на основе параметра действия. «AccountNo»
Любые подсказки о том, какой подход принять.
Одна вещь, которую следует отметить - разрешение не является частью личности. Это совершенно отдельный :) – blowdart