BlazorserversideCookieAuthentication-directlinkworkevenuserisnotauthenticated
创始人
2024-12-21 15:30:25
0

在Blazor服务端应用程序中,当使用Cookie Authentication时,直接访问受保护的页面链接时,即使用户未经过身份验证,仍会成功访问页面。 为解决此问题,可以在页面加载时进行身份验证。 在具有身份验证要求的组件中实现IAsyncDisposable接口,并在DisposeAsync()方法中取消订阅身份验证事件。

下面是示例代码:

@page "/protected"
@inject AuthenticationStateProvider AuthenticationStateProvider

@if(ViewModel.IsAuthenticated) {

You have access to the protected content!

} else {

You don't have permission to access the protected content.

}
@code { private AuthenticationState AuthenticationState => AuthenticationStateProvider.GetAuthenticationStateAsync().Result; private protectedViewModel ViewModel; protected override async Task OnInitializedAsync() { var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); ViewModel = new protectedViewModel(authState.User); } protected override async ValueTask DisposeAsync() { var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); ViewModel.Dispose(authState.User); await base.DisposeAsync(); } public class protectedViewModel : IAsyncDisposable { private readonly IDisposable _subscription; public protectedViewModel(ClaimsPrincipal user) { _subscription = user.Identity.IsAuthenticated ? null : NavigationManager.NavigateToTaskAsync("/login", true).ContinueWith(t => (IDisposable)null).Result; } public bool IsAuthenticated => _subscription == null; public async ValueTask DisposeAsync() { if (_subscription is not null) { await ((NavigationManager)services.GetRequiredService()).NavigateToAsync("/login", true); _subscription.Dispose(); } } } }

相关内容

热门资讯

透视软件!hhpoker有后台... 透视软件!hhpoker有后台操控吗,aapoker如何设置胜率,步骤教程(切实是有挂)-哔哩哔哩a...
透视开挂!wejoker辅助器... 透视开挂!wejoker辅助器怎么卖(透视)开挂辅助挂(竟然有挂)-哔哩哔哩1、实时wejoker辅...
透视黑科技!wepoker有没... 透视黑科技!wepoker有没有机器人,hhpoker脚本下载,诀窍教程(原来是有挂)-哔哩哔哩一、...
透视苹果版本!德州透视是真的吗... 透视苹果版本!德州透视是真的吗(透视)开挂辅助器(真是是有挂)-哔哩哔哩在进入德州透视是真的吗辅助挂...
透视挂透视!steampoke... 透视挂透视!steampokermaster辅助,wepoker辅助软件价格,教程书教程(本来存在有...
透视机器人!wepoker开脚... 透视机器人!wepoker开脚本视频(透视)开挂辅助app(一直是真的挂)-哔哩哔哩1、许多玩家不知...
透视讲解!德州局脚本,wepo... 透视讲解!德州局脚本,wepoker插件程序激活码,教程书教程(一直存在有挂)-哔哩哔哩1、wepo...
透视苹果版本!智星德州可以透视... 透视苹果版本!智星德州可以透视吗(透视)开挂辅助脚本(真是是真的挂)-哔哩哔哩1、完成智星德州可以透...
透视脚本!德州之星扫描器,we... 透视脚本!德州之星扫描器,wejoker辅助脚本,学习教程(切实有挂)-哔哩哔哩亲,关键说明,德州之...
透视大厅!wepoker透视脚... 透视大厅!wepoker透视脚本是什么(透视)开挂辅助脚本(果然真的是有挂)-哔哩哔哩1、透视大厅!...