HTTPエラー401.0 - Unauthorizedの解決方法
私のプロジェクトが突然このエラーを報告しました.
HTTPエラー 401.0 - 認証されていません。
あなたはこのディレクトリまたはページを表示する権限を持っていません。
最も可能性の高い原因
- 認証されたユーザーが、リクエストを処理するために必要なリソースにアクセスできない。
試してみたいアクション
- このエラーの詳細については、失敗したリクエストのトレースログをご覧ください。詳細については、以下をクリックしてください。 こちら .
詳細なエラーメッセージです。
詳細はこちら
これは、IISが返す一般的なアクセス拒否エラーです。通常、このエラーには、サーバーがリクエストを拒否した理由を説明するサブステータス コードが関連付けられています。このエラーに関連するサブステータスコードがあるかどうかを判断するには、IIS ログファイルを確認してください。Microsoft Knowledge Baseの記事です。
- 907273
フォルダパーミッションを使う方法をずっと探していました。ディスク全体にはEveryone権限を、フォルダにはEveryone権限を割り当てています。
しかし、ログインユーザーが匿名であるというエラーメッセージが表示され、グループポリシーで匿名ユーザーにEveryone権限を適用しています。つまり、システムは匿名ユーザーをEveryoneのグループのメンバーとして扱っているのです。
理論的には、ファイルシステム上のパーミッションの問題はなくなりました。
しかし、まだ次のようなエラーが報告されます。エラーページは非常に専門的で、一見するとiisシステムエラーのように見えます。
401.0の説明書もWeb上にはありません。
401.1
401.2
401.3
401.4
の説明書、401.0に関するものはほんの一部です。結果はまだ正しくありません。
仕方なく、その中の記事を探しました。プロジェクトのプロパティ(プロパティページではありません)でwindows認証を有効にすると書いてあり、うまくいきました。
プロパティページの開き方は、右クリックで開きます。 プロジェクト選択後、直接プロパティウィンドウになります。プロパティウィンドウ(右下)は自動的に表示されます。
私も死語を意識してやってみました。
奇跡的にvs2010のデバッガが応答しています。例外が発生しました。その例外は、クラス :
public class UserAuthorizeAttribute : AuthorizeAttribute
中のAuthorizeCoreメソッド。分解してみました。
このメソッドは、ユーザーがログインしていることを確認するためのフィルターです。
トレースをデバッグしたところ、そのようになりました。
ログインユーザー名はシステムユーザー名です。
このユーザー名は、ウィンドウズ・システムに固有のものです。 (ウィンドウ認証を有効にすると、ウィンドウの自動ログインの仕組みがとられてしまいます。これは確かに私たちが望むものではありません)。
その後、再度windows認証をOFFにしました。
ログインユーザー名が空になっていることを発見。コードはfalseを返します。
冒頭のエラーが返ってくる。
つまり、この例外です。AuthorizeCore メソッドから返される結果と関係があります。
またバイドゥか。 AuthorizeCoreというメソッドは何をするのか。 (説明すると、このコードは他の人が書いたものです。ウェブ上でオープンソースになっている)
この記事
http://www.tuicool.com/articles/yuUzeq
AuthorizeCore このメソッドは直接 false を返しますが、後で web.config にジャンプします。
<system.web> <authentication mode="Forms"> <forms loginUrl="~/Account/Login" timeout="2880" /> </authentication> </system.web>
loginurlで指定されたurlです。
私の設定は <forms loginUrl="~/JiMu/Index/Login" です。
そこで、この動作になったかどうか、デバッグを開始しました。
URL /JiMu/Index/Loginを入力します。
その結果、まずAuthorizeCoreというメソッドを入力し、falseを返すとエラーになります。
まで行かない。 JiMu/Index/Loginのメソッドです。
と思って、ログインページに行こうとすると. ログインしているので、AuthorizeCoreの認証メソッドに行くことができないのです。
ログインパスのバリデーションを全てスキップする必要があります。そうしないと、デッドループになります。ユーザーはログインできません...
ここで、ふと思い出したのです。
以前、, [AllowAnonymous]タグを削除したことがあるような気がします。
戻ってコードを確認しました。自分を呪いたくなるほどだ...
AllowAnonymous]属性を削除したのですが・・・。この属性を削除した後は、自動的に AuthorizeCore関数
401.0というエラーが・・・。いろいろ回って勉強したのですが、結局は自分の手によって引き起こされた問題でした・・・。[HttpPost] [AllowAnonymous] public ActionResult Login(LoginModel item, string RedirectTo) { ///..... }
もしこの記事があなたの役に立つのであれば、バン・マネーをください。以下はペイパル番号です。
[email protected]
ここ数日、私のコンフィギュレーションを聞かれることがあります。投稿しておきます。
<?xml version="1.0" encoding="utf-8"? > <! -- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <configSections> <sectionGroup name="elmah"> <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" /> <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" /> <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" /> <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" /& gt; </sectionGroup> <section name="EntityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <connectionStrings> </connectionStrings> <appSettings> <add key="webpages:Version" value="2.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="PreserveLoginUrl" value="true" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings> <! -- For instructions on changing web.config for .NET 4.5, see http://go.microsoft.com/fwlink/?LinkId=235367. The following features can be set on the <httpRuntime> tag. <system.
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例