現在、個人認証(認証/匿名アクセスのないaccount/login.cshtmlページ)とOWINを使用しているASP.Net MVC 5アプリケーションがあります。正常に動作します。ASP.Net MVC - OWIN - Windows /個人認証を許可する
イントラネットアプリケーションであるため、Windowsアカウント、別のユーザーのWindowsアカウント、またはアプリケーションアカウント(管理者、特別なユーザーなど - これらのアカウントには関連付けられているドメインアカウントはありません)の下でログインできます。
最初のオプションでは、ログイン画面にWindowsのユーザ名を表示したかったので、「ok」ボタンをクリックするだけでログインできます。ユーザー名を取得するために、Visual Studio Projectのプロパティを変更して匿名認証を無効にし、Windows認証を有効にしました。また、web.configを変更し、認証モードをFormsに設定しました。これにより、 "HTTPエラー404.15 - 見つかりません"が発生します。これは、修正するために、以下の提案をOWINによって引き起こさ認証ループに起因すると表示されます。
- ログインコントローラメソッドは、匿名アクセスを許可することを確認し(デフォルトでは、このようのようです)。
- 、またはStartup.authを変更するには、LoginPathプロパティをコメントアウトします。
- またはweb.configを変更するには、appSetting "owin:AutomaticAppStartup"を値 "false"で追加します。その中で(web.configファイルの変更を行うように)エラーや窓のユーザー名とログインページが表示され(System.Threading.Thread.Currentprincipleを使用して取得はありません
私はLOGINPATHの修正のために選んだ、これは動作するように表示されます.Identity.Name)。
ユーザーがOwinContextにログインすると、ユーザー(HttpContext.GetOwinContext()、GetUserManager())が存在しないという問題が解決されました。
理想的には、アプリケーションで行われているように認証を行う必要はありませんが、Windowsユーザーを取得できるように、認証ヘッダーを含めるための最初のリクエスト(アカウント/ログインページ)が必要です。
まず、「HTTPエラー404.15」の原因を突き止めて理解したいと思います。 第2に、OWINに認証の変更を働かせるにはどうすればいいですか?コントローラ認証のためにユーザーを永続させるために必要なだけです。
迅速な対応をありがとうPhil.P.私は両方のフォームとWindows認証を試して、両方の同じ結果を生成します。注:Windows認証が必要なのは、最初のリクエストでクライアントユーザー名を渡すことです。次に、Windowsユーザーの場合はDBおよびLDAPクエリのユーザーテーブルに対して認証します。 –
@ Leigh.D LDAPに対してどのように検証するつもりですか?私がハッカーとして知られているWindowsのユーザー名で渡しているものを置き換え、効果的に認証するのを妨げる原因は何ですか? Windows認証とは、実際のユーザー認証が検証されるNTLMを意味します。 Formsを使用し、「個別のアカウントを使用する」でプロジェクトをセットアップし、Windowsの認証に追加の認証エンドポイント/ミドルウェアを使用する必要があります。 –