Blazor 服务器应用程序 - 在身份验证后添加或更新声明

问题描述 投票:0回答:0

需要在用户登录/认证后添加或更新声明。

我们使用下面的代码来添加自定义声明,它工作正常但是当我们重新加载页面时,以前添加的声明将不可用或从声明身份中删除。

 public static async bool AddUserClaim(this ClaimsPrincipal principal, string name, string value)
    {
        bool isAdded = false;

        var clm = new Claim(name, value);

        ClaimsIdentity ci =(ClaimsIdentity)principal.Identity;

        //REMOVE CLAIM IF EXIST
        if (principal.HasClaim(c => c.Type == clm.Type))
        {               
            ci.RemoveClaim(ci.Claims.FirstOrDefault(c => c.Type == clm.Type));                
        }

        //ADD CLAIM WITH UPDATED VALUE
        ci.AddClaim(clm);

        return true;
    }
blazor-server-side claims-based-identity
© www.soinside.com 2019 - 2024. All rights reserved.