ASP.NET Core 3.0轻量级角色API控制授权库攻略
ASP.NET Core 3.0提供了一个轻量级的角色API控制授权库,可以用于控制API的访问权限。本攻略将提供一些示例,演示如何使用ASP.NET Core 3.0轻量级角色API控制授权库。
步骤
步骤1:创建一个新的ASP.NET Core Web API项目
首先,需要创建一个新的ASP.NET Core Web API项目。可以使用以下命令在命令行中创建一个新的ASP.NET Core Web API项目:
dotnet new webapi -n MyWebApi
在上面的命令中,使用 dotnet new
命令创建一个新的Web API项目。使用 -n
参数指定项目的名称为 MyWebApi
。
步骤2:安装Microsoft.AspNetCore.Authorization包
接下来,需要安装Microsoft.AspNetCore.Authorization包。可以使用以下命令在命令行中安装Microsoft.AspNetCore.Authorization包:
dotnet add package Microsoft.AspNetCore.Authorization
在上面的命令中,使用 dotnet add package
命令安装Microsoft.AspNetCore.Authorization包。
步骤3:创建角色
现在,需要创建一些角色。可以在 Startup.cs
文件中添加以下代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddAuthorization(options =>
{
options.AddPolicy("Admin", policy => policy.RequireRole("Admin"));
options.AddPolicy("User", policy => policy.RequireRole("User"));
});
}
在上面的代码中,我们在 ConfigureServices
方法中添加了两个角色:Admin
和 User
。
步骤4:授权API
现在,需要授权API。可以在 ValuesController.cs
文件中添加以下代码:
using Microsoft.AspNetCore.Authorization;
[Authorize(Policy = "Admin")]
[HttpGet("{id}")]
public ActionResult<string> Get(int id)
{
return "value";
}
在上面的代码中,我们在 Get
方法上添加了 [Authorize]
属性,并指定了 Policy
属性为 Admin
。这意味着只有具有 Admin
角色的用户才能访问此API。
步骤5:运行应用程序并测试API
现在,需要运行应用程序并测试API。可以使用以下命令在命令行中运行应用程序:
dotnet run
在上面的命令中,使用 dotnet run
命令运行应用程序。应用程序应该已经启动了。
现在,可以使用任何HTTP客户端(如Postman)来测试API。尝试访问以下URL:
https://localhost:5001/api/values/1
如果您尝试访问此API,您将收到一个401未授权的响应。这是因为您没有 Admin
角色。
示例说明
以下是两个示例说明,演示如何使用ASP.NET Core 3.0轻量级角色API控制授权库。
示例1:授权API
以下是授权API的步骤:
- 创建一个新的ASP.NET Core Web API项目。
dotnet new webapi -n MyWebApi
在上面的命令中,使用 dotnet new
命令创建一个新的Web API项目。使用 -n
参数指定项目的名称为 MyWebApi
。
- 安装Microsoft.AspNetCore.Authorization包。
使用以下命令在命令行中安装Microsoft.AspNetCore.Authorization包:
dotnet add package Microsoft.AspNetCore.Authorization
在上面的命令中,使用 dotnet add package
命令安装Microsoft.AspNetCore.Authorization包。
- 创建角色。
在 Startup.cs
文件中添加以下代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddAuthorization(options =>
{
options.AddPolicy("Admin", policy => policy.RequireRole("Admin"));
options.AddPolicy("User", policy => policy.RequireRole("User"));
});
}
在上面的代码中,我们在 ConfigureServices
方法中添加了两个角色:Admin
和 User
。
- 授权API。
在 ValuesController.cs
文件中添加以下代码:
using Microsoft.AspNetCore.Authorization;
[Authorize(Policy = "Admin")]
[HttpGet("{id}")]
public ActionResult<string> Get(int id)
{
return "value";
}
在上面的代码中,我们在 Get
方法上添加了 [Authorize]
属性,并指定了 Policy
属性为 Admin
。这意味着只有具有 Admin
角色的用户才能访问此API。
- 运行应用程序并测试API。
使用以下命令在命令行中运行应用程序:
dotnet run
在上面的命令中,使用 dotnet run
命令运行应用程序。应用程序应该已经启动了。
现在,可以使用任何HTTP客户端(如Postman)来测试API。尝试访问以下URL:
https://localhost:5001/api/values/1
如果您尝试访问此API,您将收到一个401未授权的响应。这是因为您没有 Admin
角色。
示例2:授权多个API
以下是授权多个API的步骤:
- 创建一个新的ASP.NET Core Web API项目。
dotnet new webapi -n MyWebApi
在上面的命令中,使用 dotnet new
命令创建一个新的Web API项目。使用 -n
参数指定项目的名称为 MyWebApi
。
- 安装Microsoft.AspNetCore.Authorization包。
使用以下命令在命令行中安装Microsoft.AspNetCore.Authorization包:
dotnet add package Microsoft.AspNetCore.Authorization
在上面的命令中,使用 dotnet add package
命令安装Microsoft.AspNetCore.Authorization包。
- 创建角色。
在 Startup.cs
文件中添加以下代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddAuthorization(options =>
{
options.AddPolicy("Admin", policy => policy.RequireRole("Admin"));
options.AddPolicy("User", policy => policy.RequireRole("User"));
});
}
在上面的代码中,我们在 ConfigureServices
方法中添加了两个角色:Admin
和 User
。
- 授权API。
在 ValuesController.cs
文件中添加以下代码:
using Microsoft.AspNetCore.Authorization;
[Authorize(Policy = "Admin")]
[HttpGet("{id}")]
public ActionResult<string> Get(int id)
{
return "value";
}
[Authorize(Policy = "User")]
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
在上面的代码中,我们在 Get
方法上添加了 [Authorize]
属性,并指定了 Policy
属性为 Admin
或 User
。这意味着只有具有 Admin
角色的用户才能访问第一个API,而只有具有 User
角色的用户才能访问第二个API。
- 运行应用程序并测试API。
使用以下命令在命令行中运行应用程序:
dotnet run
在上面的命令中,使用 dotnet run
命令运行应用程序。应用程序应该已经启动了。
现在,可以使用任何HTTP客户端(如Postman)来测试API。尝试访问以下URL:
https://localhost:5001/api/values/1
如果您尝试访问此API,您将收到一个401未授权的响应。这是因为您没有 Admin
角色。
尝试访问以下URL:
https://localhost:5001/api/values
如果您尝试访问此API,您将收到一个401未授权的响应。这是因为您没有 User
角色。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET Core 3.0轻量级角色API控制授权库 - Python技术站