54 lines
1.7 KiB
C#
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) };
|
|
}
|
|
}
|
|
}
|