我在我的应用程序中使用 URL 参数作为页面状态。
如何在不实际导航的情况下更改 URL?
谢谢!
(使用 blazor 服务器端)
我目前正在使用 MudBlazor 并且非常喜欢它。
然而,我发现自己反复添加一些东西到像 CancellationTokens 这样的组件中,自己自定义模板。
有没有办法完全继承/扩展现有组件?
一种选择是创建一个新组件,其中包含我想要修改的组件的实例,并将所有参数添加到我的组件中并将它们映射回原始组件,但我觉得必须有更好的方法。
我有这个 Visual Studio Identity 代码
namespace BlazorBoilerplate.Shared.AuthorizationDefinitions
{
public static class Policies
{
public const string IsAdmin = "IsAdmin";
public const string IsUser = "IsUser";
public const string IsReadOnly = "IsReadOnly";
public const string IsMyDomain = "IsMyDomain";
public static AuthorizationPolicy IsAdminPolicy()
{
return new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireClaim("IsAdministrator")
.Build();
}
public static AuthorizationPolicy IsUserPolicy()
{
return new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireClaim("IsUser")
.Build();
}
public static AuthorizationPolicy IsReadOnlyPolicy()
{
return new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireClaim("ReadOnly", "true")
.Build();
}
public static AuthorizationPolicy IsMyDomainPolicy()
{
return …Run Code Online (Sandbox Code Playgroud) 我正在使用 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>
Run Code Online (Sandbox Code Playgroud)
@code {
async Task LogoutClick()
{
await ((IdentityAuthenticationStateProvider)authStateProvider).Logout();
navigationManager.NavigateTo("/account/login");
}
}
Run Code Online (Sandbox Code Playgroud)
“AuthorizeContext”从哪里来?依赖注入?我如何在此处使用我自己的自定义授权过滤器。
只是寻找任何人都知道的关于这个特定论点的猜测或信息。
这是我的自定义 AuthorizationFilter,我不知道如何在 blazor razor 文件中使用它。
namespace BlazorBoilerplate.Shared.AuthorizationDefinitions
Run Code Online (Sandbox Code Playgroud)
{ 公共类 OfficeAuthorize : IAuthorizationFilter { 私有只读字符串 _scenario;
public OfficeAuthorize(string scenario)
{
_scenario = scenario;
}
public void OnAuthorization(AuthorizationFilterContext context)
{
//context.HttpContext.Request.Query
//custom validation rule …Run Code Online (Sandbox Code Playgroud)