私は ASP.NET MVC の初心者にすぎず、特定のタスクを「正しい方法」で達成する方法がわかりません。
基本的に、ログインした userId を HttpContext.User.Identity に保存し、EnhancedAuthorizeAttribute
いくつかのカスタム認証を実行するように記述しました。
オーバーライドされたOnAuthorization
メソッドでは、ドメイン モデルがデータベースにヒットし、現在のユーザー ID が渡された routeValue "BatchCode" にアクセスできるようにします。プロトタイプは次のとおりです。
ReviewGroup GetReviewGroupFromBatchCode(string batchCode);
ユーザーが ReviewGroup にアクセスできず、OnAuthorization がアクセスを拒否した場合は、null が返されます。
これで、装飾されたアクション メソッドは OnAuthorization がパスした場合にのみ実行されることがわかりましたが、ReviewGroup を再度取得するためにデータベースに 2 回アクセスしたくありません。
現時点では、ReviewGroup を格納しHttpContext.Items["reviewGroup"]
、コントローラーからこれにアクセスすることを考えています。
これは実行可能な解決策ですか、それとも間違った道を進んでいますか?
ありがとう!