私は ASP .NET を初めて使用するので、本当に助けが必要です。私はインターネットをたくさん検索しましたが、私の問題について何も見つかりませんでした...それは、ユーザーがログインせずにページにアクセスできないサイトに関するものです (ページはありません)。フォーム認証を使用します。
<authentication mode="Forms">
<forms loginUrl="~/Login.aspx" timeout="2880" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
しばらくして、ユーザーがログインせずにサイトのページにアクセスできるようにいくつかの変更を加えましたが、以前のコンセプトも維持したいと考えていました。そのため、ページにアクセスできるかどうかを示すキーを web.config に作成しました。この「autologin」キーが 1 に設定されている場合、「Login.aspx」にリダイレクトした後、システムはハードコーディングされたユーザー情報で自動ログインを実行するため、ユーザーはログインせずにサイトを閲覧できるように感じますが、ポイントは同じ: ページにアクセスする前に、サーバーは 302 応答 (リダイレクト) を Login.aspx に送信します。これは私の問題です!私は思う...一時的なリダイレクトはたどることができません。
例: 「GoogleBot」としてページを表示しようとすると、
「無効な URL またはサーバーが応答しません。HTTP リターン コード: 302」というエラーが表示されます。
SEO Toolkit を使用すると、同様のエラーが発生します:
「http://localhost:5769/GlobalShop/」へのリンクにより、「http://localhost:5769/GlobalShop/Login.aspx?ReturnUrl=%2fGlobalShop%2f " その結果、別のリダイレクトが発生しました。検索エンジンは、ページのランキングやその他の関連データを 1 回のリダイレクト ホップでしか渡すことができません。不要なリダイレクトを使用すると、ページのランキングに悪影響を及ぼす可能性があります。
Facebook の「オブジェクト デバッガー」を使用すると、同じエラーが発生します。機能的ないいねボタンがありますが、Facebook はメタデータを抽出して、ユーザーの Facebook ページに表示される投稿をフォーマットできません。エラー メッセージ:
「リダイレクトをたどることができませんでした: URL は HTTP リダイレクトを要求しましたが、たどることができませんでした。
リダイレクト パス:
オリジナル: http://mysite.net/Default.aspx
302: http://mysite.net/Login. aspx?ReturnUrl=%2fDefault.aspx
301: http://mysite.net/Default.aspx
最終 URL は太字になっています (これは、メタデータを抽出しようとした URL です)。
あるページから別のページにリダイレクトするには、通常、「Response.RedirectPermanent()」を使用して、この種の問題を回避します。どうにかしてフォーム認証の応答タイプを永続的なリダイレクト (301) に変更できないだろうか? できない場合はどうすればいいですか?私は何を間違っていますか?
ご協力いただきありがとうございます!