1. ホーム
  2. c#

[解決済み] ASP.NET Identity - HttpContextにはGetOwinContext用の拡張メソッドがありません。

2022-03-22 23:13:54

質問

ここからASP.NET Identityのサンプルをダウンロードし、正常に実行することができました。 https://github.com/rustd/AspnetIdentitySample

現在、プロジェクトにASP.NET Identityフレームワークを実装している最中ですが、ある問題に遭遇し、一日中気が狂いそうです...。

GetOwinContext() には拡張メソッドは存在しません。 HttpContext

IDフレームワークをクラスライブラリに実装しています。Identityフレームワークの最新版(プレリリース版)をすべてインストールし、これを除けば、すべて問題なく動作している。

同じコードをコントローラで同じように実装してみましたが、同じ問題が見つかりました。

明らかにどこかの参照が足りないのですが、それが何なのか見当もつきません......。

私を悩ませているコードブロックは

private IAuthenticationManager AuthenticationManager
{
    get
    {
        return HttpContext.GetOwinContext().Authentication;
    }
}

クラスライブラリで試したり、コントローラで直接試したりしましたが、どれもうまくいきませんでした。

using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Owin.Security;
using Microsoft.Owin;
using System.Web;

...これは私を壁まで追い詰める...何かアイデアはありますか?

アップデイト

サンプルでIdentity & OWINのバージョンを確認し、私のソリューションでも同じバージョンであることを確認しました。

さらに言えば、サンプル上のオブジェクトブラウザーを検索すると GetOwinContext そのメソッドは見つかるのですが、私のソリューションで検索するとどこにもないのです...。何か古いライブラリがあるに違いないのですが、見つからないのです。

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

アッー!

見つけた ... という余分なパッケージは持っていませんでした。 Microsoft.Owin.Host.SystemWeb

これを検索してインストールしたら、うまくいきました。

しかし、様々なチュートリアルを見ても、そのようなライブラリやパッケージへの言及はありませんでした。また、Identityフレームワークをインストールした際にもインストールされませんでした...。私だけの問題かどうかは分かりませんが...。

EDIT の中にありますが Microsoft.Owin.Host.SystemWeb アセンブリの拡張メソッドです。 System.Web 名前空間への参照を持つ必要があるので、前者で using 後者です。