以下是一个基本的示例,演示如何在ASP.NET中创建安全的Web API。
创建一个新的ASP.NET Web API项目。
在项目中添加必要的引用,包括System.Net.Http和System.IdentityModel.Tokens.Jwt。
在Web.config文件中配置身份验证和授权。
在Global.asax文件中添加以下代码,以启用JWT身份验证。
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
ConfigureJwtAuth();
}
private void ConfigureJwtAuth()
{
var issuer = "your-issuer";
var audience = "your-audience";
var secret = "your-secret-key";
var keyByteArray = Encoding.ASCII.GetBytes(secret);
var signingKey = new SymmetricSecurityKey(keyByteArray);
var tokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateIssuerSigningKey = true,
ValidIssuer = issuer,
ValidAudience = audience,
IssuerSigningKey = signingKey
};
app.UseJwtBearerAuthentication(new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
TokenValidationParameters = tokenValidationParameters
});
}
在Controllers文件夹中创建一个新的ApiController,并添加以下代码。
[Authorize]
public class MyApiController : ApiController
{
[HttpGet]
[Route("api/myapi")]
public IHttpActionResult Get()
{
// 在这里处理请求并返回响应
return Ok("Hello, World!");
}
}
使用POSTman或其他HTTP客户端工具,发送GET请求到http://localhost:port/api/myapi,并包括正确的JWT令牌。
注意:令牌可以通过在身份验证成功后返回给客户端的登录端点进行获取。
以上示例演示了如何创建一个安全的ASP.NET Web API,并使用JWT进行身份验证和授权。您可以根据自己的需求进行修改和扩展。