0

MVCアプリケーションで実際にログに記録されたユーザーの権利を確認するためのベストプラクティスは何だろうか. ビューとコントローラーでこれを行いたいと思います。

実際に、実際にログインしたユーザーがそのような役割にあるかどうかを確認できます。

User.IsInRole("roleName");

私は権利を持つテーブルを持っています。すべての権利には、名前と列挙権利表現が含まれます。私が達成したいのは、IPrincipal または IIdentity の拡張メソッドであるため、次のようにユーザーの権限を確認できます。

拡張方法の例:

    public static class MyPrincipal
    {
       public static string HasRight(this IPrincipal principal, EnumRight right)
       {
           // THIS would be place where I would check if a user have right with specific enum.
           return true/false;
       }
    }

そして、ビューまたはコントローラーで、次のように使用できます。

if(User.HasRight(EnumRight.AddDocuments) )
{
    //DO SOMETHING
}
  1. それは良い習慣ですか、それとも同様のメカニズムをより簡単にするにはどうすればよいですか? 多分独立した静的クラスは拡張ではありませんか?

  2. ユーザーが権限を持っているかどうかを確認するために必要なデータをデータベースから取得するために、拡張メソッドで実際のユーザー ID を取得するにはどうすればよいですか?

4

1 に答える 1