如何使用自己的令牌系统保护我的ASP.NET API



我正在尝试使用自定义系统保护我的asp.net API。问题是我不知道怎么做。

我已经运行了一个(简单但有效的(API。我想要保护的方式是,在请求的身份验证头中应该有一个令牌。在每次与我的API连接时,都应该调用一个方法(然后该方法应该返回布尔值(。

当然,我可以很容易地在每个HttpRequest调用一个方法->但这太容易了。

我想要的方式是写";[MyCustomAuth]";(例如(在ApiController之前……

我希望你能理解我想要什么。

谢谢!

您可以在这样的场景中使用IAsyncActionFilter(https://learn.microsoft.com/en-us/aspnet/core/mvc/controllers/filters?view=aspnetcore-5.0(

示例代码:

public class CustomAuthorizeAttribute : Attribute, IAsyncActionFilter
{    
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
//your custom logic...
if (//condition where user is not authenticated based on your custom logic)
{
context.Result = new UnauthorizedResult();
return;
}
await next();
}
}

你可以这样使用它:

[CustomAuthorize]
public class YourController: SomeControllerBase
{
}

相关内容

  • 没有找到相关文章