私はこれについて多くの経験を持っていません、そして私はあなたたちから良い提案を得ることを本当に望んでいます。次のセキュリティシナリオを実装する必要があり、それを実行するための最良の方法を知りたいです。
従業員、上司、部門マネージャーがいると想像してみてください。従業員と上司の両方に、所属する部門マネージャーに基づいて、それを指すManagerIdが割り当てられています。
スーパーバイザーユーザーがログインするときに、彼と同じManagerIdに属する従業員のレコードのみを表示するようにします。別のManagerIdユーザーを持つ別のスーパーバイザーがログインしてURLに他の従業員の情報を手動でパンチした場合(例:wwww.domain.com/employee/details/ {id})、彼のManagerId!=従業員のManagerIdアクセスを制限したいので。
それは意味がありますか?
次のようなすべてのActionMethodsのチェックを入力し始めました。
public ActionResult Details(int id)
{
var employee = employeeRepository.Get(id)
var user = (CustomIdentity)ControllerContext.HttpContext.User.Identity;
if(employee.managerId == user.managerId)
{
Do whatever...
}
else
{
Not allowed
}
}
しかし、すべてのActionMethodsにそれを入力するのは冗長で、ただ..えーと...もっと良い方法があるはずだと私は知っています。