[C#] .Net Framework フレームワークでの権限クラスの認可

2023 年、第 31 週、第 3 条。自分に目標を与えて、必ず領収書があると主張してください。信じられない場合は、試してみてください。
C# の .NET Framework では、Authorizeクラスを使用して認証を処理できます。AuthorizeクラスはSystem.Web.Mvc名前空間内に存在し、コントローラー内のアクション メソッドへのアクセスを簡単に制限する方法を提供します。

ここに画像の説明を挿入

1. 権限クラスを認可する

コントローラで認可認証を使用するには、次の手順に従います。

1. 名前空間をインポートする

まず、プロジェクトがSystem.Web.Mvc名前空間を参照していることを確認してください。プロジェクト ファイル内のステートメントに次の参照を追加できますusing

using System.Web.Mvc;

2. 許可コード

認可認証が必要な操作メソッドには属性を使用しますAuthorizeこの属性では、複数のパラメータを設定して、異なる認証ルールを指定できます。

[Authorize]  // 只有经过认证的用户才能访问该方法
public ActionResult MyAction()
{
    
    
   // 在这里编写方法的具体逻辑
}

Authorize属性にパラメータを渡して、他の認証ルールを指定することもできます。たとえば、メソッドにアクセスするためにユーザーが特定のロールに属していることを要求するには、次のようにします。

[Authorize(Roles = "Admin")]  // 需要属于 "Admin" 角色的用户才能访问该方法
public ActionResult MyAction()
{
    
    
   // 在这里编写方法的具体逻辑
}

あるいは、メソッドにアクセスするにはユーザーが同時に複数のロールに属している必要があります。

[Authorize(Roles = "Admin,Manager")]  // 需要同时属于 "Admin" 和 "Manager" 角色的用户才能访问该方法
public ActionResult MyAction()
{
    
    
   // 在这里编写方法的具体逻辑
}

ユーザーに特定の認証プロバイダーによる認証を要求するなど、他の認証ルールを設定することもできます。

[Authorize(AuthenticationSchemes = "MyAuthScheme")]  // 需要使用名为 "MyAuthScheme" 的认证提供程序进行认证
public ActionResult MyAction()
{
    
    
   // 在这里编写方法的具体逻辑
}

以上がAuthorize認可認証にクラスを使用する基本的な手順です。特定のニーズに応じてさまざまな認証ルールを設定し、柔軟な権限制御を実現できます。

2. 認証方法

C# の .NET Framework では、Authorizeクラスはアクセス許可の認証に役立ち、承認タスクは通常、認証 (認証) プロバイダーによって処理されます。
認証プロバイダーはユーザーの認証を担当し、認可プロバイダーは認証されたユーザーに適切なアクセス許可を割り当てる責任を負います。

認可を実装するには、次の手順に従います。

1. 認証を設定する

まず、認証が設定されていることを確認してください。.NET Framework で提供される認証メカニズム (フォーム認証、Windows 認証など) を使用することも、サードパーティの認証ソリューションを使用することもできます。

2. 権限を割り当てる

ロールプロバイダーなどの承認プロバイダーを使用して、ユーザーにアクセス許可を割り当てます。認可プロバイダーは、ユーザーが誰であるかに基づいてユーザーが実行できる内容を決定します。

構成ファイル (web.config など) で使用する認可プロバイダーを指定できます。たとえば、ロール プロバイダーを使用する場合は、次の構成を構成ファイルに追加できます。

<system.web>
 <authorization>
   <allow roles="Admin" />
   <deny users="*" />
 </authorization>
</system.web>

1) 上記の設定は、「管理者」ロールに属するユーザーのみがアクセスを許可され、他のユーザーはアクセスが拒否されることを示しています。

2) 構成ファイルに加えて、コード内で認可プロバイダーを使用して認可を行うこともできます。
3) たとえば、コントローラーのアクション メソッドでメソッドを使用して、User.IsInRoleユーザーが指定されたロールに属しているかどうかを確認できます。

[Authorize(Roles = "Admin")]
public ActionResult MyAction()
{
    
    
   if (User.IsInRole("Admin"))
   {
    
    
       // 用户是管理员,执行操作逻辑
   }
   else
   {
    
    
       // 用户不是管理员,执行其他逻辑
   }
}

1) ユーザーが必要な権限を持っていない場合、Unauthorizedメソッドを呼び出して、未承認のエラー ページを返したり、他の操作を実行したりすることができます。
2) このように、ユーザーがAuthorize属性で保護された操作メソッドにアクセスしようとすると、システムは認可ルールに従ってユーザーにアクセス権があるかどうかを判断します。
3) ユーザーが正常に認証され、必要な権限を持っている場合は操作を続行できますが、そうでない場合、ユーザーはアクセスを拒否されます。
4) 承認はアプリケーションの一部にすぎないことに注意してください。アプリケーションを完全に保護するには、認証およびその他の関連設定が適切に構成されていることも確認する必要があります。

3. 許可のメリットとデメリット

C# で .NET Framework のクラスをAuthorizeアクセス許可制御に使用する場合は、考慮すべき利点と欠点がいくつかあります。

1. 利点

1) 使いやすさ:Authorizeクラスは、コントローラーのアクション メソッドへのアクセスを制限する簡単な方法を提供します。属性を使用するとAuthorize、アクセス許可制御ロジックをコードに簡単に導入できます。
2) 柔軟性:Authorizeこのクラスはさまざまな構成オプションを提供し、特定のニーズに応じて柔軟な権限設定を行うことができます。さまざまなシナリオや権限要件に合わせて、認証ルール、ロール要件、認可プロバイダーなどを指定できます。
3) 統合:Authorizeこのクラスは、.NET Framework の認証メカニズム (フォーム認証、Windows 認証など) とシームレスに統合されます。認可プロバイダを使用すると、認証と認可の機能を簡単に組み合わせることができます。

2. デメリット

1) .NET Framework に依存する:Authorizeクラスは .NET Framework の独自の機能です。アプリケーションを他のプラットフォームに移行することを検討している場合は、さまざまな権限制御ソリューションを検討する必要があるかもしれません。
2) 制限:Authorizeクラスはコントローラーの操作メソッドでのみ使用できます。単一のページ要素に対するアクセス許可制御など、より詳細なアクセス許可制御が必要な場合は、他のメソッドを使用する必要がある場合があります。
3) 学習曲線: 初心者の場合、認可の概念と実装を学習して理解するには、ある程度の時間と学習コストがかかる場合があります。

要約すると、Authorizeクラスはアクセス許可を制御するためのシンプルかつ柔軟な方法を提供し、ほとんどの場合のアクセス許可要件に適しています。
ただし、アクセス許可制御スキームを選択する場合は、アプリケーション固有のニーズ、プラットフォームの依存関係、学習コストなどの要素を総合的に考慮して、最適な選択を行う必要があります。

おすすめ

転載: blog.csdn.net/lmy_520/article/details/131998337