使用方式
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");
}
}