【发布时间】:2021-01-04 02:59:50
【问题描述】:
我在 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;
};
});
【问题讨论】:
-
尽可能避免
static。尤其是授权。
标签: c# asp.net-core blazor blazor-server-side