在Blazor WebAssembly应用程序中安装IdentityServer4包。
创建一个包含用户名的表单并向身份服务器发送请求以进行身份验证。示例代码如下:
@page "/login"
@using System.Net.Http
@using System.Text.Json
@inject HttpClient httpClient
Login
@code {
private string UserName { get; set; }
private string Password { get; set; }
private async Task Login()
{
var response = await httpClient.PostAsJsonAsync("https://localhost:5001/connect/token",
new
{
client_id = "blazor",
client_secret = "secret",
grant_type = "password",
scope = "api",
username = UserName,
password = Password
});
if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
var accessToken = JsonSerializer.Deserialize(content);
// Store the access token
}
else
{
// Handle error
}
}
class AccessToken
{
public string access_token { get; set; }
public string token_type { get; set; }
public int expires_in { get; set; }
}
}
public void ConfigureServices(IServiceCollection services)
{
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
services.AddIdentityServer()
.AddDeveloperSigningCredential()
.AddInMemoryApiResources(Config.GetApi