これは、Webフォームオーバーデータソートの初心者のパターンの質問です。私はExposing database IDs - security risk?を読んで、これは時間の無駄だと思っていますが、待ちます...データベースIDをUIに公開する
私はビジネスロジックライブラリを参照しているMVCプロジェクトと、それを参照するNHibernate SQLリポジトリのアセンブリを持っています。何かが私の手を動かしてコントローラのコードベースからそれらのリポジトリを直接参照すると、何がうまくいかなかったのか分かります。しかし、これらのコントローラがデータベースレコードIDを持つURLパラメータで話す場合、だけがと思われますか?
(MVCアクションによって)消耗していないIDは考えられません。私はしません私は今までデータベースの同じ行に対応する2つのUIエンティティを必要と思います。コントローラーがIDを解釈するつもりはありません。サロゲート・キーを使用すると、差異はゼロになります。しかし、私はこの問題を抱えています。なぜなら、合理的な設計についての前提は、層スキップ依存関係よりも優れていないからです。
ビジネス・ロジック・アセンブリのみを参照し、そのセッションの意味しか持たないBLオブジェクトおよびGUIDのみで、アセンブリがデータベースIDを使用してトランザクションを持続する間、Webアプリケーションをどのように作成しますか?
あなたは私に多くのことを考えさせました。どのようにマッピングを実装するのか、そしてどこにそれを格納するのかについての提案はありますか? 「セッション」は本当にASPの中で最高の場所ですか? –
"マッピング"?あなたが探しているものではっきりしない。フィールド保護?私はちょうどあなたが取る暗号化機能を行う提案:FieldName、FieldValue、SessionID。それから解読するときに解読するために3つをすべて供給する必要もあります。だから、別のセッションの誰かがその価値をまったくハイジャックすることはできません。 URLパラメータのために必要なものでなければなりません。セッションレスページのサポートが必要な場合は、セッションIDの代わりにハードコードされた値を使用できます。セキュアではなく、セッションレスページでは機密情報にアクセスしないでください。 –
私はあなたの答えの要点、セッションと塩分けしています。マッピングをまったく保存/管理する必要はありません。これは最高です。ありがとうございました。 –