IIS Expressを使用してMVC4アプリケーションを展開しています。このWebサイトは同じコンピューターで完全に動作します。しかし、LANではエラー401が発生します。
<authentication mode="Forms">
<forms loginUrl="~/" slidingExpiration="true" timeout="20">
</forms>
</authentication>
ホームコントローラーで
[HttpPost]
[AllowAnonymous]
public ActionResult Index(LoginModel model, string returnUrl)
{
}
管理者モードでコマンドプロンプトからIISサーバーを起動しています。 IISは、エラー401
でリクエストに応答します。
どんな手掛かり?
これは古い投稿であることがわかりましたが、IIS 8.5でも同じエラーが発生しました。これが別の人が同じ問題を経験するのを助けてくれることを願っています(似たようなタイトルの他の質問で私の問題の概要が見えませんでした)。
すべてがアプリケーションプールIDで正しくセットアップされているように見えましたが、引き続きエラーが発生しました。掘り下げた後、匿名ユーザーがアプリケーションプールIDまたは特定のユーザーの資格情報を使用するための設定があります。何らかの理由で、私のデフォルトは特定のユーザーになりました。設定をアプリプールIDに変更すると、問題が修正されました。
うまくいけば、他の人の時間を節約できます!
IIS 7を使用している場合は、次のようにします。
楽しい。
次のようにiisで匿名認証を有効にしていることを確認してください。
誰かがまだこれを探している場合、これは問題を解決しました:
これが役立つ人には、これが私の命を救った...
IIS 7が401を取得した理由を把握するのが困難でした-不正:資格情報が無効なためアクセスが拒否されました...これを行うまで...
私はその古い質問に気付きましたが、これは私の検索で出てきました。最近構築され、初めてデプロイされたMVCアプリケーションについても同様の問題があり、認証メカニズムは完全にハッシュ化されていませんでした。
私の場合、IISの設定ではなく、[AllowAnonymous]
で装飾されていないコントローラーでした。 Layout.cshtmlでRender.Action/Html.Actionを使用していましたが、ユーザーが認証されていませんでした。そのため、レイアウトは認証されていないコンテキストで認証されたアクションをロードしようとしました。
アクションをAllowAnonymousに更新すると、問題はなくなり、 これが原因でした 。
これが誰かを助けることを願っています。
同様の問題に直面しました。
フォルダーが共有され、認証済みユーザーのアクセス許可が提供され、問題が解決しました。
今日も同様の問題がありました。何らかの理由で、私のGETリクエストはうまくいきましたが、PUTリクエストは私のWCF WebHttpサービスで失敗しました
以下をWeb.configに追加すると問題が解決しました
<system.web>
<authentication mode="Forms" />
</system.web>
MVCフォルダーで空のプロジェクトを作成し、サーバーにアプリケーションをデプロイしたときにこのエラーに直面しました。私の問題は、Web.config
で認証を定義しなかったため、この行をsystem.web
タグに追加するだけでした。
<system.web>
<authentication mode="None"/>
</system.web>
IIS 8.5で同じ問題に直面しました。私にとって有効なソリューションは、IISを変更して詳細なエラーを表示することでした。 sna2sthaからの回答を参照してください。しかし、詳細なエラーメッセージを運用環境のブラウザに転送することはお勧めできません。 httpErrors-SectionのexistingResponse属性を追加/変更したため、IISは既存のAsp.net応答を処理しませんでした。
<httpErrors existingResponse="PassThrough" />
これは私のために動作します。
私の場合、
私のアプリケーションはMVC
で開発されており、私のホームコントローラークラスは[Authorize]
で装飾されていたため、この問題が発生していました。
アプリケーションで認証を必要としないため、削除しました。