リダイレクトせずに URL にアクセスする方法はありますか? 基本的に、バックグラウンドでアプリケーション内から URL を呼び出して、依存関係をログアウトできるようにしたいと考えています。
助けに感謝します。
リダイレクトせずに URL にアクセスする方法はありますか? 基本的に、バックグラウンドでアプリケーション内から URL を呼び出して、依存関係をログアウトできるようにしたいと考えています。
助けに感謝します。
あなたがやろうとしていることは、あなた自身の認証の実装に直接関係しているので、私たちが答えるのに競合することはありません。
フォーム認証に基づく通常のASP.NET認証では、指定された認証に依存しているため、常にブラウザからURLを取得する必要があります。
Webサイトを開いてログインし、その後、他のブラウザブランド(ブラウザウィンドウではない)をアプリケーションのURLで開いてみてください。認証がフックされているため、再度ログインする必要があることがわかります。最初のブラウザに移動します。
別の認証方法を実装することによってこれを行うのはアプリケーションアーキテクトとしてのあなた次第です。通常、この種の場合、これは、最初に認証コードが必要なWebサービス(Loginメソッドを呼び出すことによって与えられる)を使用するときに発生し、そのコードはシステムへの呼び出しの本文またはヘッダーに常に追加する必要があります。
このようにして、認証コードを簡単に削除でき、すべてのプロシージャ呼び出しが失敗します。
すでに述べたように、これは私たちの責任ではありません。正しい認証レイヤーを作成するのはあなたの責任です。
あなたのコメントから
WebClientオブジェクトを使用するのと同じくらい簡単です
WebClient client = new WebClient ();
string reply = client.DownloadString (address);
新しいURLリクエストに転送したい場合でも、引き続き使用できます
Server.TransferRequest()
これに伴う問題は、リダイレクトを使用しないことにより、ブラウザのアドレスバーがリクエストを別のURLに移動したという事実を反映しないことです。
クライアントにバックグラウンドで特定のURLにアクセスさせるには、AJAX呼び出しを行うか、ログアウトURLのsrcを含む画像を用意する必要があります(ただし、画像のFileResultも返すようにする必要があります) )。これは、ほとんどの分析パッケージがバックグラウンドで関連するURLを呼び出す方法です。
ただし、ここでの問題は、どちらも100%信頼できるものではなく、ブラウザでjavascriptまたは画像をオフにすると、これらの結果が失敗することです。
あなたが言ったことから、あなたが求めているのは、ユーザーが特定のログアウトページではなく、さまざまなページのいずれかに進むことだと思います。これが実際に当てはまる場合、最善の解決策は実際には二重リダイレクトです。
アプリケーションをログアウトURLにリダイレクトしますが、その前に、移動先のページのURLをtempdataに配置します。次に、ログアウトページのactionresultで、必要に応じてログアウトを実行し、tempdataからURLへのリダイレクトを返すことができます。