ASP.NET Identity - HttpContext には GetOwinContext の拡張メソッドがありません 質問する

ASP.NET Identity - HttpContext には GetOwinContext の拡張メソッドがありません 質問する

ここから ASP.NET Identity サンプルをダウンロードし、正常に実行しました。https://github.com/rustd/AspnetIdentityサンプル

現在、プロジェクトで ASP.NET Identity フレームワークを実装している最中ですが、一日中頭を悩ませている問題に遭遇しました...

GetOwinContext()私の拡張メソッドとしては存在しないHttpContext

クラス ライブラリに ID フレームワークを実装しています。ID フレームワークの最新版 (プレリリース版) をすべてインストールしましたが、これ以外はすべて正常に動作しています。

同じコードをコントローラーに同じダイレクトとして実装してみましたが、同じ問題が発生しました。

明らかにどこかに参照が欠けているのですが、それが何なのか全く分かりません。

私を悩ませているコードブロックは次のとおりです:

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メソッドが見つかりますが、ソリューションで検索するとどこにも見つかりません... ライブラリが古くなっているはずですが、見つけることができません。

ベストアンサー1

ああ!

見つけたよ…余分な荷物はなかったよMicrosoft.Owin.Host.SystemWeb

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

さて、私がすべてを見逃しただけなのかどうかはわかりませんが、さまざまなチュートリアルを調べたときに、そのようなライブラリやパッケージへの参照は見つかりませんでした。また、このすべての Identity Framework をインストールしたときにもインストールされませんでした... 私だけなのかどうかはわかりません。

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

おすすめ記事