.Netの中で、AuthorizeAttributeを使用してユーザーを設定する方法は何ですか?

ASP.NETでは、AuthorizeAttributeを使用して特定のユーザーの権限を設定することができます。

最初に、コントローラーのメソッドまたは全体のコントローラークラスにAuthorizeAttributeを使用してマークする必要があります。これにより、認可されたユーザーのみがそのコントローラーまたは特定のメソッドにアクセスできるように制限されます。例えば、

[Authorize]
public class HomeController : Controller
{
    // ...
}

上記のコードは、HomeControllerコントローラーにアクセスできるのは認証済みユーザーだけであることを示しています。

その後、現在認証されているユーザー情報を取得するためにUserプロパティを使用できます。例えば、コントローラーのメソッド内でUser.Identity.Nameを使用して現在のユーザー名を取得したり、User.IsInRole(“roleName”)を使用してユーザーが特定のロールに属しているかどうかを判断することができます。

public class HomeController : Controller
{
    public IActionResult Index()
    {
        string username = User.Identity.Name;
        bool isAdmin = User.IsInRole("Admin");

        // ...

        return View();
    }
}

上記のコードでは、User.Identity.Nameは現在のユーザーのユーザー名を取得し、User.IsInRole(“Admin”)は現在のユーザーがAdminの役割に属しているかどうかを判断します。

User属性を使用するためには、認証と承認がすでに行われていることを確認する必要があります。認証サービスや承認ポリシーなどを設定するためには、Startup.csファイルのConfigureServicesメソッドで関連の設定を行うことができます。

public void ConfigureServices(IServiceCollection services)
{
    // ...

    services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddCookie(options =>
        {
            options.LoginPath = "/Account/Login";
            options.AccessDeniedPath = "/Account/AccessDenied";
        });

    services.AddAuthorization(options =>
    {
        options.AddPolicy("RequireAdminRole", policy =>
            policy.RequireRole("Admin"));
    });

    // ...
}

上記のコードでは、services.AddAuthenticationは認証サービスを追加するために使用され、services.AddAuthorizationは認可ポリシーを追加するために使用されます。これにより、コントローラーでUser属性を使用してユーザー情報を取得できるようになります。

bannerAds