1. ホーム
  2. c#

要求に対応するOWIN認証マネージャが存在しない

2023-11-09 02:03:59

質問

Web APIプロジェクト(VS 2013 + .Net 4.5.1)でowin & AspNet Identityを有効にすると、有効または無効な(存在しないコントローラへのリクエスト)リクエストで次のエラーが発生しました。

<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
No OWIN authentication manager is associated with the request.
</ExceptionMessage>
<ExceptionType>System.InvalidOperationException</ExceptionType>
<StackTrace>
at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.SuppressDefaultAuthenticationChallenges(HttpRequestMessage request) at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.<SendAsync>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Web.Http.HttpServer.<SendAsync>d__0.MoveNext()
</StackTrace>
</Error>

デバッグモードで確認したところ、例外も処理されないようです また、私は ConfigurationStartup クラスは決して呼び出されません(実際、デバッガによって捕捉されません)。以下は起動時のコードです。

[assembly: OwinStartup(typeof(bloob.bloob.Startup))]

namespace bloob.bloob
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

どのように解決するのですか?

私はついに問題を見つけました! 新しく作成したプロジェクトと一行ずつ比較し、違いがないことを確認した後、両方のプロジェクトの参照をチェックしました。すべての問題は、不足しているパッケージからだった。

Microsoft.Owin.Host.SystemWeb

なぜパッケージのインストール段階でこのパッケージが見落とされたのかは分かりませんが、不思議なのは、なぜビルド例外が投げられなかったのか、DLL参照エラーはなかったのか、という点です。