Я работаю с этим кодом с Blazor Boilerplate: ( BlazorBoilerPlate GitHub )
@using Microsoft.AspNetCore.Components
@inject NavigationManager navigationManager
@inject AuthenticationStateProvider authStateProvider
<AuthorizeView Context="AuthorizeContext">
<Authorized>
<MatTooltip Tooltip="Logout">
<MatIconButton Icon="exit_to_app" RefBack="@context" OnClick="LogoutClick"></MatIconButton>
</MatTooltip>
</Authorized>
<NotAuthorized>
<MatTooltip Tooltip="Login">
<MatIconButton Icon="account_box" RefBack="@context" Link="/account/login"></MatIconButton>
</MatTooltip>
</NotAuthorized>
@code {
async Task LogoutClick()
{
await ((IdentityAuthenticationStateProvider)authStateProvider).Logout();
navigationManager.NavigateTo("/account/login");
}
}
Откуда приходит «AuthorizeContext» от? Инъекция зависимости? Как я могу использовать свой собственный фильтр авторизации здесь.
Просто ищу какие-либо догадки или информацию, которые кто-нибудь знает относительно этого аргумента c.
Вот мой пользовательский фильтр AuthorizationFilter, я не знать, как использовать его в файле бритвенного лезвия.
namespace BlazorBoilerplate.Shared.AuthorizationDefinitions
{publi c класс OfficeAuthorize: IAuthorizationFilter {частная строка только для чтения _scenario;
public OfficeAuthorize(string scenario)
{
_scenario = scenario;
}
public void OnAuthorization(AuthorizationFilterContext context)
{
//context.HttpContext.Request.Query
//custom validation rule
if (_scenario == "OfficeAssignment")
{
context.Result = new ForbidResult();
}
}
}
public class OfficeAuthorizeAttribute : TypeFilterAttribute
{
public OfficeAuthorizeAttribute(int input) : base(typeof(OfficeAuthorize))
{
Arguments = new object[] { input };
}
}
}