目的
すべてのページへの直接 URL アクセスを制限しますが、ユーザーが他のすべてのページを参照する必要Logon.aspx
があることを確認します。
運転者
この要件の背後にある原動力は、社内のセキュリティ部門です。彼らは、アプリケーションが常に安全であることを保証するには、これが唯一受け入れられるソリューションだと考えています。
問題
問題は 2 つあるので、最初の 1 つに対処しましょう。ユーザーがログインしてページにいる場合、URL をコピーし、新しいタブを開き、前のタブを閉じ、URL を貼り付けることができ、セッションは引き続き有効です。なぜこれが起こっているのかは理解していますが、彼らはそれを起こさないようにする必要があると言っています. 理由を聞かないでください。もしそうでなければ、彼らを納得させられるだろうと答えることができれば。
問題の 2 番目の部分は、アプリケーションが最初に作成された方法 (ここに本当に 怒っている顔を挿入) の 2 つの Web フォームが登録に再利用されていることです。これは具体的には、ユーザーがログインしていなくても、これらのページにアクセスできることを意味します。ただし、プロセス フローを通じてこれらのページを明示的に参照し、直接アクセスできないようにする必要があります。
前述の段落の例として、次のことを考えてみましょう。ユーザーは URL を共有フォームの 1 つにコピーし、新しいブラウザーを開き、URL に貼り付けます。セッションは終了していますが、フォームは登録のために表示されます。しかし、彼らは条件を受け入れておらず、すでに壊れやすい流れを壊しているため、これは問題です.
私は何を試しましたか?
正直なところ、何もありません。これまでに見た中で最も優れているのは、ユーザーが最初にログインしていることを確認することです。Cookie を使用する人もいれば、メンバーシップ プロバイダーを使用する人もいますが、ユーザーが既にログインしているという事実は、どちらの問題にも対処できません。
皆様からのご連絡をお待ちしております!