ホームページ >バックエンド開発 >C++ >ASP.NET MVC 5 ID で現在の ApplicationUser を効率的に取得する方法

ASP.NET MVC 5 ID で現在の ApplicationUser を効率的に取得する方法

DDD
DDDオリジナル
2024-12-25 09:37:371026ブラウズ

How to Efficiently Retrieve the Current ApplicationUser in ASP.NET MVC 5 Identity?

ASP.NET MVC 5 - ID: 現在の ApplicationUser の取得

Article エンティティの Author プロパティを次のように設定するには現在認証されているユーザーの場合は、完全な ApplicationUser を取得することが重要ですobject.

標準アプローチ

ID 拡張機能を使用すると、次のコードを使用して現在のユーザーを簡単に取得できます:

ApplicationUser currentUser = db.Users.FirstOrDefault(x => x.Id == User.Identity.GetUserId());

ただし、このアプローチには欠点があります。直接データベース クエリを実行する必要があり、追加の依存関係が生じ、将来のデータベース変更に伴う不一致が生じる可能性があります。

代替アプローチ

これらの制限を克服するには、次の URL で提供される UserManager クラスを使用します。 ASP.NET Identity フレームワーク:

var user = UserManager.FindById(User.Identity.GetUserId());

このメソッドは効率的に取得します現在のユーザーはデータベースに直接アクセスする必要がありません。これにより、将来の API 変更との一貫性が確保され、新しいコンテキストの依存関係が導入されるリスクが排除されます。

OWIN との同期

コントローラーの外部でユーザー オブジェクトにアクセスする場合、現在の HttpContent からユーザー ID を取得します。 OwinContext:

ApplicationUser user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId());

このアプローチにより、OWIN が提供するユーザー管理との同期が保証されます。

以上がASP.NET MVC 5 ID で現在の ApplicationUser を効率的に取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。