I have code something like the below where at a certain point I need to update a user's claims (of type System.Security.Claims
). I'm trying the RemoveClaim
and AddClaim
inside a method but how do I get the userIdentity from the user object in order to have access to RemoveClaim
& AddClaim
?
using System;
using System.Collections.Generic;
using System.Security.Claims;
namespace Trip.Classes.Authentication
{
public class TripUser
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public DateTime LastAccessed { get; set; }
public List<Claim> Claims { get; set; } = new List<Claim>();
}
}
user.Claims = new List<Claim>
{
new Claim("DefaultId", DefaultId.ToString()),
new Claim("LastAccessed", LastAccessed.ToString()),
};
user = await SetDefaultId(user) as TripUser;
public async Task<TripUser> SetDefaultId(TripUser user)
{
int myNewDefaultId = 2;
user.RemoveClaim("DefaultViewId");
user.AddClaim(new Claim("DefaultViewId", myNewDefaultId.ToString()));
return await Task.FromResult(user);
}
NOTE: I initially tried something like the following but it doesn't work:
user.Claims.Remove(claim => claim.Type == "DefaultViewId");