ASP.NET 4.0 アプリケーションのフォーム認証は、cookieless="AutoDetect" に設定されています。ユーザーがログイン ページをブックマークすると、ブックマーク リンクがhttps://hostname.com/Login.aspx?AspxAutoDetectCookieSupport=1に設定されることに気付きました。ユーザーが新しいブラウザ セッションから直接これに移動し、有効なログインを実行した場合、Cookie は設定されません。そのページに直接移動し、クエリ文字列から AspxAutoDetectCookieSupport を削除すると、Cookie が正しく作成されます。
ユーザーが Default.aspx またはルート ディレクトリに直接移動すると、クエリ文字列に AspxAutoDetectCookieSupport=1 が付加されていても、ログインは正しく機能します。
ユーザーがログイン ボタンをクリックすると、ログイン ページにポストバックし、ユーザーの資格情報をデータベースと照合して手動でチェックします。成功した場合、次のことを行います。
FormsAuthentication.RedirectFromLoginPage(userName, false);
リファレンス ソースの ASP.NET フォーム認証コードを調べるなど、これをデバッグするのに何時間も費やしましたが、何が原因なのか特定できませんでした。現時点で唯一の解決策は、ブックマーク URL からログイン ページを削除するようユーザーに指示し、ユーザーがクリックできるようにログイン ページにブックマーク ボタンを追加することです。
このフォーム認証の問題を解決する別の解決策はありますか? それはフォーム認証ではありますか?