Blazor 登陆,授权-入门级别

本文讨论了在Blazor应用中使用ASP.NETCoreIdentity进行登录时遇到的问题,即页面刷新导致数据丢失,以及Singleton模式(如`AddScoped`)的局限性,强调了如何在登录场景下正确管理全局状态和使用依赖注入。
摘要由CSDN通过智能技术生成

使用方式

builder.Services.AddScoped<UserService>();

缺点,页面刷新,数据就丢。后续再研究ASP.NET Core Identity的登录方式

备注:AddSingleton这个方式是全局变量,类似Static的用法,不能用在登录上

创建一个类

namespace BlazorApp.Data
{
    public class UserService
    {
        private UserAccount loginUser;

        public void SetLoggedInUser(UserAccount loginUser)
        {
            this.loginUser = loginUser;
        }

        public UserAccount GetLoggedInUser()
        {
            return this.loginUser;
        }
    }
}

Program文件里面注册一下

builder.Services.AddScoped<UserService>();

登录的时候使用

[Inject]
[NotNull]
private UserService UserService { get; set; }




//登录用户信息
UserService.SetLoggedInUser(user);

其他页面使用

[Inject]
[NotNull]
private UserService UserService { get; set; }


protected override void OnAfterRender(bool firstRender)
{
  if (UserService.GetLoggedInUser() == null)
  {
     NavigationManager.NavigateTo("/Login");
  }
}

Blazor Server 是一个用于构建 Web 应用程序的 Microsoft 技术栈。它允许您使用 C# 语言和 .NET 平台来开发现代、交互式的用户界面。在 Blazor Server 中实现登录功能可以通过以下步骤进行: 1. 创建用户身份验证服务:首先,您需要创建一个用户身份验证服务,用于处理用户的登录和注册请求。您可以使用 ASP.NET Core 的身份验证和授权功能来实现这一点。可以使用 IdentityServer、ASP.NET Core Identity 或其他身份验证库来处理用户的身份验证和授权。 2. 创建登录页面:在 Blazor Server 中,您可以创建一个登录页面,用于接收用户的登录凭据(如用户名和密码)。您可以使用 Blazor 组件来构建这个页面,并使用表单组件来处理用户输入。 3. 处理登录请求:在登录页面中,您可以使用 C# 代码来处理用户的登录请求。您可以调用身份验证服务中的方法来验证用户的凭据,并根据验证结果执行相应的操作,如登录成功后跳转到主页,或者显示登录失败的错误消息。 4. 保持用户会话:在 Blazor Server 中,用户会话是由服务器端维护的。一旦用户成功登录,服务器会为该用户创建一个会话,并将会话信息存储在服务器端。您可以使用 ASP.NET Core 的会话管理功能来实现这一点。 5. 访问受保护的页面:一旦用户成功登录并且具有适当的权限,您可以让用户访问受保护的页面。在 Blazor Server 中,您可以使用身份验证和授权功能来限制用户对某些页面或操作的访问权限。 这是一个简单的介绍,关于 Blazor Server 登录的详细实现步骤和代码示例,您可以参考 Microsoft 的官方文档或者搜索相关的教程和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值