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

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

Susan Sarandon
リリース: 2025-01-13 11:42:44
オリジナル
135 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート