.net8 blazor auto模式很爽(三)用.net8的Blazor自动模式测试,到底在运行server还是WebAssembly

         Blazor自动模式到底什么时侯在运行server,什么时侯在运行WebAssembly。这个对我们来说非常重要,官方并没有很清楚地告诉我们。并且存在一些误导,让我们觉得自动模式就是不管我怎么弄,blazor都会自动识别该使用server还是WebAssembly。我们新建一下Blazor自动模式项目,第一次运行,我们来检测浏览器是什么模式:为了弄清楚这个问题,我们在页面Home、Weather、Counter都增加了一段代码: protected override void OnInitialized()
 {
     Console.WriteLine("我在哪?");
 }

          在控制台输出"我在哪?",如果是server模式,你打开浏览器是看不到这个输出的。如果是WebAssembly则可以在浏览器的控制台看到"我在哪?"。

通过运行我反复刷新,我们只有在Counter页面运行第二次时才能在浏览器的控制台看到"我在哪?",Home和Weather无论我怎么刷新,它都是server模式。

如果我们用另外一个浏览器,打开这个地址,只有在首次运行Counter才是server模式,其他的全是WebAssembly模式,你关掉浏览器再打开地址,第一次运行Counter也会是WebAssembly模式。就是说只要你的浏览器运行过一次Counter,系统就会下载WebAssembly到你的本地。以后不再使用server模式。这很完美,我很喜欢Blazor这个自动模式。

        通过测试,我们更加确信一点,我们要改造vs自动创建的.net8的Blazor自动模式项目,把所有的页面文件全部弄到Client里面去,用前后端分离的模式来使用Blazor。这个改造非常必要,也有点复杂,我们将在后面的章节说明。弄清楚Blazor的运行模式非常重要,其中一点是因为我们有时侯需要用electron或者webview这种客户端和浏览器通过js进行直接数据交换。如果你是server模式,浏览器里面根本就没有代码在运行,还交换个啥?

ASP.NET Core Blazor Server 应用程序可以使用 ASP.NET Core 身份验证来实现登录认证和权限控制。以下是实现此功能的基本步骤: 1. 在 Startup.cs 文件的 ConfigureServices 方法中添加身份验证和授权服务: ``` services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(options => { options.LoginPath = "/Login"; options.LogoutPath = "/Logout"; }); services.AddAuthorization(options => { options.AddPolicy("AdminOnly", policy => policy.RequireRole("Admin")); }); ``` 2. 在 Configure 方法中启用身份验证和授权中间件: ``` app.UseAuthentication(); app.UseAuthorization(); ``` 3. 在需要身份验证和授权的页面或组件上使用 AuthorizeView 组件: ``` <AuthorizeView Policy="AdminOnly"> <Authorized> <!-- 显示受保护的内容 --> </Authorized> <NotAuthorized> <!-- 显示未授权的内容 --> </NotAuthorized> </AuthorizeView> ``` 4. 在登录页面或组件中使用 SignInManager 和 UserManager 进行身份验证: ``` var result = await _signInManager.PasswordSignInAsync(username, password, rememberMe, lockoutOnFailure: false); if (result.Succeeded) { return RedirectToPage("/Index"); } else { ModelState.AddModelError(string.Empty, "用户名或密码不正确。"); return Page(); } ``` 以上是实现 ASP.NET Core Blazor Server 应用程序的基本身份验证和授权功能的步骤。根据具体需求,还可以使用自定义身份验证方案、角色和策略来进行更复杂的权限控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值