ASP.NET MVCでカスタム認証を正常に使用しています。これは単に、User.Identityとコンテキスト内のオブジェクトの所有者との比較を含みます。ASP.NET MVC承認およびハイパーリンク
単純な条件で使用すると魅力的です。 1つのWebリクエストで2つのアクションを呼び出そうとすると、より複雑になります。
私のアプリケーションでオンザフライで生成される画像を表示したいとします。このイメージはコントローラによって生成されるため、物理的に存在しなくてもURLで参照することができます。私は、ユーザがログインしてそれを見るための所有者でなければならないと決めたので、私はそれに私の認証機構を適用する。
例:< IMG SRC =「http://myapplication.com/images/generate/3」/ >
私はそのアクションのハイパーリンクを経由してページにこのような画像が含まれている場合、私が認証することを期待しますイメージが生成されている間は、ユーザーは依然としてサーバー側のコンテキストになります。これは私のテストでは当てはまりません。認可チェックが機能しないため、イメージは表示されません。イメージコントローラでは、User.Identityは、ユーザーが署名していないかのように空です。
その間、同じユーザーがウェブサイトにサインインしているため、画像が正しく機能していなくても、自分のアイデンティティをコンテキストで参照し続けることができます。
私はしっかりと、このプロセスの仕事を作る方法を疑問に思う...
はどうもありがとうございました!Marc Lacoursiere RooSoft Computing inc。
2つのリクエストが同じスレッドで行われることは確実ですか? – RooSoft
なぜ2つのスレッドがあるのかわかりません。最初に、画像の実際のビットではなく、その内部にあなたのimgタグを付けてページをレンダリングするよう要求されます。次に、ブラウザがあなたのimgタグをレンダリングすると、あなたのイメージを取得するようコントローラに要求が行われます。どちらの場合も、アクティブなスレッドは1つだけです。 – Peter
最初にASP.NET MVCのステートレスな性質のためにその事実に頼ることができるのだろうか... 理論的には、ロードバランシング設定では、2つの異なるサーバーで2つの要求を行うことができます。 2つの異なるスレッドを意味します。 – RooSoft