BlazorServerside=>AuthenticationwithoutIdentityScaffoldingPOSSIBLE?
创始人
2024-12-21 15:30:24
0

以下是在Blazor Server端上实现身份验证但无需使用Identity模板的示例代码:

  1. 创建自定义登录组件

创建名为Login.razor的组件,并添加以下代码:

@page "/login"

Login

@code { private LoginModel loginModel = new LoginModel(); private async void HandleValidSubmit() { var result = await _authService.LoginAsync(loginModel); if (result.Succeeded) { NavigationManager.NavigateTo("/"); } else { // Handle login failure } } } public class LoginModel { [Required(ErrorMessage = "Username is required")] public string Username { get; set; } [Required(ErrorMessage = "Password is required")] public string Password { get; set; } }
  1. 在Startup.cs文件中添加Auth服务的依赖注入

在Startup.cs文件的ConfigureServices方法中添加以下代码:

services.AddScoped();
services.AddScoped();
  1. 创建自定义身份验证状态提供程序

创建名为CustomAuthenticationStateProvider.cs的类,并添加以下代码:

public class CustomAuthenticationStateProvider : AuthenticationStateProvider
{
    private readonly IAuthService _authService;

    public CustomAuthenticationStateProvider(IAuthService authService)
    {
        _authService = authService;
    }

    public override async Task GetAuthenticationStateAsync()
    {
        var user = await _authService.GetUserAsync();
        if (user != null)
        {
            var identity = new ClaimsIdentity(new[]
            {
                new Claim(ClaimTypes.Name, user.Username),
            }, "apiauth_type");
            var principal = new ClaimsPrincipal(identity);
            return new AuthenticationState(principal);
        }

        return new AuthenticationState(new ClaimsPrincipal());
    }

    public void NotifyAuthenticationStateChanged()
    {
        NotifyAuthenticationStateChanged(GetAuthenticationStateAsync());
    }
}
  1. 创建自

相关内容

热门资讯

辅助开挂!盛世辅助,pokem... 辅助开挂!盛世辅助,pokemmo脚本手机版(透视)开挂辅助安装(有挂教程);一、盛世辅助有挂的是的...
开挂辅助!黑科技辅助器软件,w... 开挂辅助!黑科技辅助器软件,wepoker底牌透视脚本(透视)开挂辅助平台(有挂细节);一、黑科技辅...
辅助开挂!微乐小程序有脚本吗,... 辅助开挂!微乐小程序有脚本吗,xpoker怎么辅助(透视)开挂辅助插件(有挂秘诀);亲真的是有正版授...
辅助开挂!泉州相约十三水辅助,... 辅助开挂!泉州相约十三水辅助,德州透视脚本(透视)开挂辅助神器(真实有挂);泉州相约十三水辅助是一项...
透视辅助“佛手大菠萝13道挂哪... 您好:这款游戏是可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好...
开挂辅助!天天爱柳州麻将辅助器... 开挂辅助!天天爱柳州麻将辅助器,德扑圈透视挂(透视)开挂辅助神器(存在有挂);天天爱柳州麻将辅助器中...
透视安装“pokemmo手机版... 您好:这款游戏是可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好...
辅助开挂!创思维辅助器,wep... 辅助开挂!创思维辅助器,wepoker有没有插件(透视)开挂辅助工具(揭秘有挂);创思维辅助器软件透...
透视线上“哈糖大菠萝软件下载”... 透视线上“哈糖大菠萝软件下载”开挂(透视)辅助安装(可靠技巧有挂透明挂);无需打开直接搜索微信(13...
开挂辅助!蛮王辅助器,德普之星... 开挂辅助!蛮王辅助器,德普之星有辅助软件吗(透视)开挂辅助工具(有挂秘笈);蛮王辅助器软件透视开挂更...