private MUser FetchUserFromLdap() { if (_mUser == null) { var s = _claimsPrincipal.FindFirst(ClaimTypes.PrimarySid)?.Value; if (s == null) { return(null); } var ldapObject = _ldap.Search($"objectSID={s}", attributesToLoad.ToArray()).FirstOrDefault(); _mUser = new MUser(); _mUser.FirstName = ldapObject.GetValueOrDefault <string>("GivenName"); _mUser.LastName = ldapObject.GetValueOrDefault <string>("sn"); _mUser.Active = true; _mUser.Subject = ldapObject.GetValueOrDefault <Guid>("ObjectGuid").ToString(); _mUser.UserName = _claimsPrincipal.Identity?.Name; _mUser.Email = ldapObject.GetValueOrDefault <string>("mail"); foreach (var group in ldapObject.GetValuesOrDefault <string>("memberof")) { var mClaim = new MExternalClaim(); mClaim.Type = "groupDN"; mClaim.Value = group; mClaim.Issuer = _providerId; _mUser.ExternalClaims.Add(mClaim); } } return(_mUser); }
public static MExternalClaimDto ToDto(this MExternalClaim externalClaim) { var dto = new MExternalClaimDto(); dto.Id = externalClaim.Id; dto.Value = externalClaim.Value; dto.Issuer = externalClaim.Issuer; dto.Type = externalClaim.Type; return(dto); }