ホームページ >バックエンド開発 >C++ >ASP.NET Core コントローラーで現在のユーザーを効率的に取得するにはどうすればよいですか?

ASP.NET Core コントローラーで現在のユーザーを効率的に取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-13 11:25:42947ブラウズ

How Can I Efficiently Retrieve the Current User in ASP.NET Core Controllers?

ASP.NET Core コントローラーでの効率的なユーザー アクセス

ユーザーの詳細 (電子メール アドレスなど) へのアクセスは、アプリケーションの機能をパーソナライズするために不可欠です。 ただし、ASP.NET Core コントローラーのコンストラクター内でユーザーに直接アクセスすると、HttpContext が null である可能性があるため、多くの場合問題が発生します。 これには通常、すべてのアクション メソッドで冗長なユーザー情報の取得が必要となり、効率に影響を与えます。

合理化されたソリューションには、次の使用が含まれます:

<code class="language-csharp">User.FindFirst(ClaimTypes.NameIdentifier).Value</code>

これにより、ユーザーの一意の識別子、つまり電子メールなどのさらなるユーザー データにアクセスするためのキーが簡潔に取得されます。

コンストラクターでのユーザーへのアクセス

コントローラーのコンストラクター内でユーザー アクセスが必要な状況では、次のアプローチをお勧めします。

<code class="language-csharp">public Controller(IHttpContextAccessor httpContextAccessor)
{
    var userId = httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
}</code>

これは IHttpContextAccessor 依存関係に依存しており、アプリケーションの ConfigureServices メソッド (Startup.cs または Program.cs 内) に登録する必要があります。

<code class="language-csharp">public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpContextAccessor();
    // ... other service registrations
}</code>

この設定により、コントローラーのパフォーマンスを損なうことなくユーザー情報に確実にアクセスできるようになります。 潜在的な null 値を適切に処理するために、null 条件演算子 (?.) を使用していることに注意してください。

以上がASP.NET Core コントローラーで現在のユーザーを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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