Пример #1
0
        public Task AddClaimAsync(IdentityUser user, System.Security.Claims.Claim claim)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            if (claim == null)
            {
                throw new ArgumentNullException("claim");
            }

            var u = _securityDbService.UserRepository.GetById(user.Id);

            if (u == null)
            {
                throw new ArgumentException("IdentityUser does not correspond to a User entity.", "user");
            }

            var c = new Domain.Security.Claim
            {
                ClaimType  = claim.Type,
                ClaimValue = claim.Value,
                User       = u
            };

            u.Claims.Add(c);

            _securityDbService.UserRepository.Update(u);
            return(_securityDbService.SaveChangesAsync());
        }
Пример #2
0
        public Task RemoveClaimAsync(IdentityUser user, System.Security.Claims.Claim claim)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            if (claim == null)
            {
                throw new ArgumentNullException("claim");
            }

            var u = _securityDbService.UserRepository.GetById(user.Id);

            if (u == null)
            {
                throw new ArgumentException("IdentityUser does not correspond to a User entity.", "user");
            }

            var c = u.Claims.FirstOrDefault(x => x.ClaimType == claim.Type && x.ClaimValue == claim.Value);

            u.Claims.Remove(c);

            _securityDbService.UserRepository.Update(u);
            return(_securityDbService.SaveChangesAsync());
        }