Sam*_*Sam 2 c# authentication blazor .net-8.0
我在使用 .NET 8 进行 Blazor 授权时遇到了一些奇怪的行为。该示例是 Blazor Web App 模板的略微修改版本,其默认设置(无授权)。
我确实手动添加了授权,因为 Blazor 默认的授权模板不满足我们的要求。我在下面进一步解释我如何添加授权。
启用授权并且主页标有“授权”属性后,我希望网站在启动时显示“登录”文本,因为我未获得授权:
路由.razor
<Router AppAssembly="@typeof(Program).Assembly">
<Found Context="routeData">
<AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)">
<NotAuthorized>
<span>Login</span>
</NotAuthorized>
</AuthorizeRouteView>
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
</Found>
</Router>
Run Code Online (Sandbox Code Playgroud)
家用剃须刀
@page "/"
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
@...
Run Code Online (Sandbox Code Playgroud)
然而,预期的行为并没有发生。相反,我在第一个 Web 请求时收到 401 错误,并且没有显示任何内容。
更奇怪的是,当我从 App.razor 文件中完全删除 Routes 组件(这似乎是整个网站的某种入口点)时,即使没有路由,我仍然收到相同的 401 错误全部到 Home 组件:
应用剃刀
<!DOCTYPE html>
<html lang="en">
<!-- ... -->
<body>
Hello App
@* <Routes @rendermode="@InteractiveAuto" /> *@
<script src="_framework/blazor.web.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
另一方面,如果我从 Home 组件(甚至没有引用)中删除 Authorize 属性,网站会突然正常工作并按预期显示 App.razor 文件中的“Hello App”。但是,我希望 Home 组件需要授权。
看来 Blazor 正在 Router 组件之外进行一些额外的路由,尽管这根本没有意义。
有人可以解释这种奇怪的行为,以及当我未经授权时如何让路由组件显示 NotAuthorized 片段?
为了在默认 Blazor Web 模板中启用授权,我进行了以下修改:
builder.Services.AddAuthorizationCore();到Client项目的Program.cs文件中。builder.Services.AddAuthentication(BearerTokenDefaults.AuthenticationScheme).AddBearerToken();到服务器项目中。您可以在我的 GitHub 存储库中找到完整的示例项目:https://github.com/AntMaster7/BlazorApp3。
小智 6
创建班级
public class AuthorizationMiddlewareResultHandler : IAuthorizationMiddlewareResultHandler
{
public Task HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
{
return next(context);
}
}
Run Code Online (Sandbox Code Playgroud)
添加处理程序
services.AddSingleton<IAuthorizationMiddlewareResultHandler, AuthorizationMiddlewareResultHandler>();
Run Code Online (Sandbox Code Playgroud)
这就是全部,这是 blazor 服务器 .Net 8 模板错误
我希望这有帮助,对我有用
| 归档时间: |
|
| 查看次数: |
814 次 |
| 最近记录: |