我在blazor服务器端应用程序中使用Cookie身份验证。
await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity), authProperties);
我现在想要做的是每当blazor服务器端应用验证用户授权时,在静态类中更改一个静态变量。有没有简单的方法可以做到这一点?
编辑: 这是基于Plamen Yordanov解决方案的实现。
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, configureOptions =>
{
bool personalNummerConfigured = false;
configureOptions.Events.OnValidatePrincipal = (context) =>
{
if (!personalNummerConfigured)
{
var employeeClaim = context.Principal.Claims.Where(x => x.Type == "EmployeeId").FirstOrDefault();
int.TryParse(employeeClaim.Value, out int personalNummer);
FbController.PersonalNummer = personalNummer;
Console.WriteLine($"PersonalNummer: {employeeClaim.Value}");
personalNummerConfigured = true;
}
return Task.CompletedTask;
};
});