1

ASP.NET MVC アプリケーションを構築し、フォーム認証を使用しています。私のコントローラーアクションには次のものがあります:

[Authorize(Users = "me,joe")]

それはうまくいっています。昨夜、最新の変更を公開して自分の Web サイトを表示しようとすると、Windows 認証ダイアログ ボックスが表示され始めました。すべてのコードを調べましたが、Windows 認証に変更される理由がわかりません。私の web.config ファイルは少なくとも 10 日間変更されていません。開発ボックスからコードを実行すると、これは行われません...ホストから実行された場合のみです。また、コントローラー アクションから Authorize 行を削除しても、それは発生しません。

これを修正するにはどうすればよいですか、またはソリューションをデバッグして、なぜこれが起こっているのかを確認するにはどうすればよいですか?

ところで、私の web.config は次のように述べています。

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
4

3 に答える 3

3

これは、Web サーバー上の Web サイトのフォルダーに対する認証とアクセス許可の IIS 設定に対して行われる可能性が最も高いです。何よりも先に両方をチェックします。

于 2009-05-09T21:32:51.987 に答える
1

暗所で撮影してるだけなのですが、<identity>web.configに設定はありますか?

 <system.web>
    ...   
    <identity impersonate="true"/>
    ...
 </system.web>

その場合は、この行を削除すると役立つ場合があります。Web サイトに Windows 認証が突然適用された理由をホスティング プロバイダーに尋ねることも役立つ場合があります。他の人が言及しているように、この動作を引き起こしている可能性のある IIS 設定があります。

于 2009-05-09T22:26:57.783 に答える
0

IUSER、IWAMの権限を設定する必要があると思います

Windows エクスプローラーを使用して、アクセス許可を付与するフォルダーを参照します。フォルダを右クリックし、「プロパティ」を選択します。表示されるダイアログで、上部にある [セキュリティ] タブをクリックします。次に、これらのアカウント (IUSR_machineName、IWAM_macnineName、および ASPNET) のセキュリティを追加または編集できます。

于 2009-05-09T21:33:46.600 に答える