ASP.NET/MVC を使用しており、ActionResult/ViewResult コントローラー メソッドにセキュリティ対策を追加する必要があります。基本的に、ユーザーがページに関連付けられているのと同じ組織に関連付けられていること、ユーザーのアクセスレベルを確認し、必要に応じてリダイレクトする必要があります。
通常、これには属性を使用しますが、ビュー/リダイレクトを返す場所を決定するためにいくつかのビジネス ロジックを使用する必要があり、それを実行する前にクエリ文字列値で非定数ユーザー定義オブジェクトを初期化する必要があります。おそらくヘルパークラスを使用してロジックを集中化したいのですが(提案を受け付けています)、コンテキストにアクセスする方法やヘルパークラスからリダイレクトする方法がわかりません。
たとえば、ページアクションは次のようになります...
public ActionResult Index(string id)
{
Models.Bucket bucket = new Bucket();
InitBucket(bucket, id);
SecurityHelper.UserOrganisationMatchesObjectOrganisation(CurrentUser, bucket);
}
そしてSecurityHelperで
public static void UserOrganisationMatchesObjectOrganisation(Model.User user, Bucket bucket)
{
//if various logic in user and bucket occur return View("NewPage", bucket)
//else return RedirectResult("~/yournotallowed")
}
唯一のことは、ヘルパーメソッドでコンテキストなしでビューをリダイレクト/返すことができず、コントローラーからヘルパークラスに渡す方法、またはそれが可能かどうかがわからないことです。
サービスを使用したり、属性を使用して初期化されたバケットオブジェクトを渡すことができるなど、これを行うためのより良い方法があると確信しています.
どんな提案でも大歓迎です!
ありがとう