とは Thread.CurrentPrincipal
のために使用される?アプリケーションの認証と承認にどのように役立ちますか?それが何をするのかを説明するのに役立つ記事やリソースはありますか?
Thread.CurrentPrincipal
は、.NETアプリケーションがプロセスを実行しているユーザーまたはサービスアカウントのIDを表す方法です。
1つ以上のIDを保持でき、アプリケーションが IsInRole
メソッドを介してプリンシパルがロールにあるかどうかを確認できるようにします。
.NETのほとんどの認証ライブラリは、ユーザーの資格情報を検証し、Threadクラスのこの静的プロパティを新しいプリンシパルオブジェクトに設定します。
異なるスレッドは、異なるユーザーからの要求を処理している可能性があるため、異なるプリンシパルを持つことができます(ASP.NET Webアプリケーションでは HttpContext.User
新しい要求ごとにThread.CurrentPrincipal
にコピーされます)
.NET 4.5以降、すべてのプリンシパルクラスは ClaimsPrincipal
から派生し、クレームベースの認証を有効にします。