Blazorwasmcookie认证
创始人
2024-12-21 20:00:24
0

Blazor wasm是一种全新的web开发框架,它可以与服务器进行通信并进行cookie身份验证。在使用Blazor wasm进行开发时,可以使用Microsoft.AspNetCore.Components.Authorization 命名空间下的AuthenticationStateProvider类进行客户端cookie身份认证,该类还可与服务端身份验证进行配合使用。

示例代码:

启用cookie身份验证:

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

services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(options => { options.Cookie.Name = "YourCookieName"; options.LoginPath = "/auth/login"; options.LogoutPath = "/auth/logout"; });

在Login页面进行身份认证:

您可以使用 HttpClient 或者 JavaScriptInterop 进行身份认证,示例中使用 HttpClient,代码如下:

@page "/auth/login" @inject NavigationManager Navigation @inject HttpClient HttpClient

@code{ private string username; private string password;

private async Task PerformLogin()
{
    var loginResponse = await HttpClient.PostAsJsonAsync("/api/login", new { username, password });

    if (loginResponse.IsSuccessStatusCode)
    {
        Navigation.NavigateTo("/");
    }
}

}

在服务端进行身份认证:

在服务端的 API 中添加以下代码进行身份认证:

[HttpPost("login")] public async Task> Login([FromBody] LoginInputModel model) { var user = await _userManager.FindByNameAsync(model.Username);

if (user != null && await _userManager.CheckPasswordAsync(user, model.Password))
{
    var claims = new List
    {
        new Claim(ClaimTypes.NameIdentifier, user.Id),
        new Claim(ClaimTypes.Name, user.UserName)
    };

    var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

    var principal = new ClaimsPrincipal(identity);

    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);

    return Ok();
}

return BadRequest();

}

在 Logout 实现中添加以下代码:

[HttpPost("logout")] public async Task>

相关内容

热门资讯

轻量版八分钟!wepoke有挂... 轻量版八分钟!wepoke有挂网上德州微扑克辅助(其实真的有挂)-知乎1、用户打开应用后不用登录就可...
挂一分钟!来玩德州app服务器... 挂一分钟!来玩德州app服务器在哪里德州aa辅助(果真真的有挂)-今日头条小薇(透视辅助)致您一封信...
插件1分钟!wpk ai是有w... 插件1分钟!wpk ai是有wopoker德州真的有挂(的确真的有挂)-哔哩哔哩1、完成wopoke...
安卓版本6分钟!轰趴大菠萝十三... 安卓版本6分钟!轰趴大菠萝十三水辅助德州ai智能辅助(果然真的有挂)-知乎1、轰趴大菠萝十三水辅助系...
ai辅助五分钟!微扑克的辅助工... 您好,云扑克是否有外挂这款游戏可以开挂的,确实是有挂的,需要了解加微【487309276】很多玩家在...
新版八分钟!aapoker辅助... 新版八分钟!aapoker辅助工具wpk俱乐部有外挂(好像真的有挂)-小红书1、下载好wpk俱乐部有...
安卓版九分钟!德州之星辅助we... 安卓版九分钟!德州之星辅助wepoke ai辅助(果然真的有挂)-微博客户端;1)德州之星辅助辅助挂...
渠道八分钟!pokernow可... 渠道八分钟!pokernow可以加注德州ai辅助神器(其实真的有挂)-小红书;1、让任何用户在无需p...
最新款7分钟!gg扑克辅助we... 最新款7分钟!gg扑克辅助wepoke模拟器(果然真的有挂)-百度知乎;1、打开软件启动之后找到中间...
安装1分钟!nzt德州辅助软件... 安装1分钟!nzt德州辅助软件微扑克辅助软件(都是真的有挂)-百度知乎;1、点击下载安装,微扑克辅助...