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 変更との一貫性が確保され、新しいコンテキストの依存関係が導入されるリスクが排除されます。
コントローラーの外部でユーザー オブジェクトにアクセスする場合、現在の 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 サイトの他の関連記事を参照してください。