نکته تکمیلی
افزودن اطلاعات اضافی به لیست Claimهای کاربر جاری پس از موفقیت آمیز بودن اعتبارسنجی توکن ارسالی:
OnTokenValidated = async ctx => { string oid = ctx.Principal.FindFirstValue("http://schemas.microsoft.com/identity/claims/objectidentifier"); //Get EF context var db = ctx.HttpContext.RequestServices.GetRequiredService<AuthorizationDbContext>(); //Check is user a super admin bool isSuperAdmin = await db.SuperAdmins.AnyAsync(a => a.ObjectId == oid); if (isSuperAdmin) { //Add claim if they are var claims = new List<Claim> { new Claim(ClaimTypes.Role, "superadmin") }; var appIdentity = new ClaimsIdentity(claims); ctx.Principal.AddIdentity(appIdentity); } }
All the existing claims will still be there after this. We are only adding new claims