myhn/Apps/Website/ClaimsFactory.cs
2021-01-08 16:26:19 +01:00

29 lines
742 B
C#

using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Options;
namespace Website
{
public class CustomClaimsFactory : UserClaimsPrincipalFactory<IdentityUser>
{
public CustomClaimsFactory(
UserManager<IdentityUser> userManager,
IOptions<IdentityOptions> optionsAccessor)
: base(userManager, optionsAccessor)
{
}
protected override async Task<ClaimsIdentity> GenerateClaimsAsync(IdentityUser user)
{
var identity = await base.GenerateClaimsAsync(user);
if (await UserManager.IsInRoleAsync(user, "Administrator"))
{
identity.AddClaim(new Claim("Admin", "1"));
}
return identity;
}
}
}