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

ASP.NET Core コントローラーで現在のユーザーにアクセスするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-13 11:42:44128ブラウズ

How to Access the Current User in ASP.NET Core Controllers?

ASP.NET Core コントローラーで現在のユーザーを取得する

ASP.NET Core コントローラー内のユーザー情報にアクセスするには、null 参照例外を回避するために慎重な考慮が必要です。 コントローラーのコンストラクターで HttpContext を直接使用すると、エラーが発生する可能性があります。

アクション メソッド内でのユーザー データへのアクセス

信頼性の高い方法には、アクション メソッド内でユーザーの詳細を取得し、それらを ViewData に保存することが含まれます。この例では、リクエストにユーザー Cookie が存在することを前提としています:

<code class="language-csharp">public ActionResult Index()
{
    string userId = HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
    ViewData["UserId"] = userId;
    return View();
}</code>

その後、ViewData["UserId"] アクションに関連付けられたビューで Index を介してユーザー ID にアクセスします。 null 条件演算子 (?.) は、FindFirst が null を返した場合の例外を防ぎます。

コントローラー コンストラクター内のユーザー データへのアクセス

コンストラクターベースのアクセスの場合は、IHttpContextAccessor インターフェイスを利用します。

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

IHttpContextAccessor がサービス構成に登録されていることを確認してください:

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

これらの手法は、ASP.NET Core の現在のユーザー データにアクセスするための堅牢な方法を提供し、ランタイム エラーのリスクを最小限に抑えます。 null 条件演算子を使用して、潜在的な null 値を適切に処理することを忘れないでください。

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

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