gehgassi_backend/gehGassi.Web/Auth/Attributes/HasHeaderAuthorizeAttribute.cs

54 lines
1.7 KiB
C#

using gehGassi.Web.Auth.Filters;
using gehGassi.Web.Auth.Requirements;
using Microsoft.AspNetCore.Mvc;
namespace gehGassi.Web.Auth.Attributes
{
/// <summary>
/// Attribut zur Prüfung ob ein ein Request einen Header beinhaltet
/// </summary>
public class HasHeaderAuthorizeAttribute : TypeFilterAttribute
{
private string _headerName;
private string _headerValue;
/// <summary>
/// HeaderName der für die Prüfung herangezogen werden soll
/// </summary>
public string HeaderName
{
get => _headerName;
set
{
_headerName = value;
Arguments = new object[] { new HasHeaderRequirement(_headerName, _headerValue) };
}
}
/// <summary>
/// HeaderValue der für die Prüfung herangezogen werden soll
/// </summary>
public string HeaderValue
{
get => _headerValue;
set
{
_headerValue = value;
Arguments = new object[] { new HasHeaderRequirement(_headerName, _headerValue) };
}
}
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="headerName">Name des Headers der für die Prüfung herangezogen werden soll</param>
/// <param name="headerValue">Wert den der Header beinhalten muss</param>
public HasHeaderAuthorizeAttribute(string headerName, string headerValue) : base(typeof(AuthorizeHasHeaderPolicyFilter))
{
_headerName = headerName;
_headerValue = headerValue;
Arguments = new object[] { new HasHeaderRequirement(_headerName, _headerValue) };
}
}
}