کتابخانه «DNTCommon.Web.Core» به همراه روشی چندسکویی برای دریافت اطلاعات سرور هم هست. پس از دریافت اطلاعات، فقط کافی است یک AuthorizationFilter سفارشی را برای بررسی آن طراحی کنید:
public class RestrictServerAttribute : Attribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
if (/* check server info */)
{
// Request came from an unauthorized host, return bad request
context.Result = new BadRequestObjectResult("Host is not allowed");
}
}
}
و سپس آنرا به صورت یک فیلتر سراسری معرفی کنید تا به همهجا اعمال شود:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers(options =>
{
options.Filters.Add(new RestrictServerAttribute());
});
}