サーバー 2008 上の IIS 7.5 で実行されている .NET 4 の Web フォーム アプリを使用しています。
401 Unauthorized - 資格情報が無効なため、アクセスが拒否されました。指定した資格情報を使用してこのディレクトリを表示する権限がありません。
このページには、それ以上の情報やサブステータス コードはありません。詳細について IIS エラー ログを確認したところ、この問題は Safari を使用する Mac のユーザーに固有のようですが、Firefox などの他のブラウザーでも発生することがわかりました。この場合も、これらのログにはサブステータス コードは提供されません。
提供されたエラー メッセージは 401.1 と一致しているようですが、Windows 認証ではなくフォーム認証を使用しています。私はこれを自分で再現することができませんでしたが、現時点では、一連の特定の手順を実行した後、一貫してではなく、ユーザーに対してランダムに発生しているようです.
このエラーは、ユーザーがアプリ内またはログインしようとしているときに発生します。無効な資格情報を入力したこととは関係ないと思います。これを処理するための検証があり、既にアプリにログインしているユーザーに発生する可能性があります。
エラーを再現できないため、この問題を解決する方法がわかりません。この点に関するガイダンスと、皆さんが思いつく解決策やアイデアがあれば教えてください。さらに情報が必要な場合はお知らせください。質問を更新できます。
編集:
Mac の設定によっては、不要なときに WWW-Authenticate ヘッダーが送信される可能性があるのではないかと考えましたが、TamerData を使用してヘッダーを追加した後も、問題を再現できないことがわかりました。IIS のすべての認証は、匿名とフォームを除いて無効になっています。
編集2:
認証されていないユーザーが ?ReturnUrl=value パラメーターを使用して保護されたページにアクセスしようとすると発生します。これにより、IIS は上記のエラー ページを表示します。認証されていない保護されたページへのアクセス試行で ReturnUrl パラメーターを削除し、ユーザーを Begin_Request のログイン ページにリダイレクトすることで、この動作を修正できます。
ただし、この問題は、ユーザーがログインした直後にリダイレクトされるページで最も一般的に報告されています。そのため、何らかの理由で、ユーザーが実際に認証されているにもかかわらず、401 エラーが引き続き送信されます。これはなぜでしょうか?