Мне нужно контролировать доступ к представлениям на основе уровней привилегий пользователей (нет ролей, только уровни привилегий для уровней операций CRUD, назначенных пользователям) в моем приложении MVC 4.
Например; ниже AuthorizeUser будет мой настраиваемый атрибут, и мне нужно использовать его следующим образом:
[AuthorizeUser(AccessLevels="Read Invoice, Update Invoice")]
public ActionResult UpdateInvoice(int invoiceId)
{
// some code...
return View();
}
[AuthorizeUser(AccessLevels="Create Invoice")]
public ActionResult CreateNewInvoice()
{
// some code...
return View();
}
[AuthorizeUser(AccessLevels="Delete Invoice")]
public ActionResult DeleteInvoice(int invoiceId)
{
// some code...
return View();
}
Можно ли так сделать?
.Name.ToString()
является избыточным, посколькуName
свойство уже является строкойВот модификация пред. ответ. Основное отличие состоит в том, что когда пользователь не аутентифицирован, он использует оригинальный метод HandleUnauthorizedRequest для перенаправления на страницу входа:
источник
Возможно, это пригодится кому-нибудь в будущем, я реализовал настраиваемый атрибут авторизации следующим образом:
источник
Если вы используете WEB API с утверждениями, вы можете использовать это:
источник