これは、Web フォーム オーバー データの種類に関する初心者向けのパターンの質問です。データベース ID の公開 - セキュリティ リスク?を読みました。受け入れられた答えは、これは時間の無駄だと私に考えさせますが、待ってください...
ビジネス ロジック ライブラリを参照する MVC プロジェクトと、それを参照する NHibernate SQL リポジトリのアセンブリがあります。何かのせいでコントローラーのコードベースからこれらのリポジトリを直接参照しなければならなくなった場合、何が問題だったのかがわかります。しかし、これらのコントローラーがデータベース レコード ID を使用して URL パラメーターで対話する場合、それは間違っているように見えるだけでしょうか?
これらの ID が (MVC アクションによって) 消費できなくなるとは考えられません。データベース内の同じ行に対応する 2 つの UI エンティティが必要になることはないと思います。コントローラーが ID を何らかの方法で解釈するつもりはありません。代理キーは違いがありません。それでも、合理的な設計に関する仮定は、レイヤーをスキップする依存関係よりも優れているわけではないため、問題が発生したいと考えています。
ビジネス ロジック アセンブリのみを参照し、そのセッションでのみ意味を持つ BL オブジェクトと GUID で対話し、アセンブリがデータベース ID を使用してトランザクションを永続化する Web アプリケーションを作成するにはどうすればよいでしょうか?