2009-05-09 5 views
1

私はASP.NET MVCアプリケーションを構築し、フォーム認証を使用しています。ASP.NET MVCアプリケーションがWindows認証を要求しているのはなぜですか?

[オーソライズ(ユーザー= "私、ジョー")]

素晴らしい仕事をしている:私は私のコントローラのアクションで。昨夜、最新の変更を公開してウェブサイトを表示しようとすると、Windows認証ダイアログボックスがポップアップし始めました。私は自分のすべてのコードを見てきましたが、なぜWindows認証に変わるのかわかりません。私のweb.configファイルは少なくとも10日間は変更されていません。私のdevのボックスからコードを実行する場合、これはしません...私のホストから実行されている場合のみ。私のコントローラから行を承認するアクションを削除しても、それは起こりません。

これを修正するにはどうすればよいですか、またはこれをどうやって解決できますか?

ところで、私のweb.configファイルは言う:

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

答えて

3

これはほとんどの場合、Webサーバー上のWebサイトのフォルダでの認証と許可のためのIISの設定に行います。私は何かの前にそれらの両方をチェックするだろう。

+0

これはホスト型のソリューションなので、私のホストのWebベースのコントロールパネルのどこかにありますか?私のコードからAuthorize行を削除すると、なぜこれが変更され、もっと重要なのはなぜ機能が停止するのでしょうか? – Whozumommy

+0

Authorize属性を取り除くと、匿名アクセスが許可されるため、認証プロンプトは表示されません。私は何かがWindows認証を許可する許可設定をリセットすると思われる。これらが親から継承するように設定されていて、親の設定が変更された場合は、それが説明されます。 – tvanfosson

+0

しかし、これをホスト環境で設定またはテストするにはどうすればよいですか?私のホストのコントロールパネル(HELM)には、フォルダのプロパティを設定する方法が含まれていないようです。 – Whozumommy

0

私は、Windowsエクスプローラを使用して、権限を付与するために欠けているフォルダを参照使用してIUSER、IWAM

ための権限を設定する必要があると思います。フォルダを右クリックし、[プロパティ]を選択します。表示されるダイアログで、上部の「セキュリティ」タブをクリックします。これらのアカウントのセキュリティを追加または編集できます(IUSR_machineName、IWAM_macnineName、およびASPNET)。

+0

これはホストされたソリューションなので、フォルダを参照することはできません。あなたは私のローカルコピーでそれをすべきだと言っていますか? – Whozumommy

+0

いいえ、あなたのローカルコピーはすでに動作していますが、サーバ上では動作しません。ホストのコントロールパネルをブラウズしてこの問題を解決するか、FileZillaのようなFTPクライアントアプリケーションを使用してフォルダのアクセス権を設定してみてください –

1

暗いところで撮影していますが、あなたのweb.configに<identity>の設定がありますか?

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

もしそうなら、この行を削除してください。また、ホスティングプロバイダにWindows認証が突然あなたのWebサイトに適用されている理由を尋ねるのに役立つかもしれません。他の人が述べたように、この動作を引き起こしているIIS設定があります。

関連する問題