在ASP.NET Core中,可以使用AddAuthentication()
方法来启用身份验证,并使用AddJwtBearer()
方法来配置JWT身份验证。
以下是一个使用ASP.NET Core映射声明的示例代码:
首先,在Startup.cs
文件中,添加以下代码:
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.IdentityModel.Tokens;
// ...
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = "your-issuer",
ValidAudience = "your-audience",
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("your-secret-key"))
};
});
// ...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
app.UseAuthentication();
// ...
}
在上述代码中,AddAuthentication()
方法启用了身份验证,AddJwtBearer()
方法配置了JWT身份验证。在TokenValidationParameters
中,可以设置需要验证的声明,如ValidateIssuer
、ValidateAudience
、ValidateLifetime
和ValidateIssuerSigningKey
等。还可以设置有效的颁发者(ValidIssuer
)、有效的受众(ValidAudience
)和签名密钥(IssuerSigningKey
)。
之后,在需要进行身份验证的Controller或Action上添加[Authorize]
属性,以确保只有经过身份验证的用户可以访问:
[Authorize]
public class YourController : Controller
{
// ...
}
这样,只有经过身份验证的用户才能访问该Controller中的Action。
需要注意的是,上述示例使用了JWT身份验证,因此需要在请求中包含有效的JWT令牌。