/// <summary> /// Initializes a new instance of AppPrincipal class. /// </summary> public AppPrincipal(int id, Guid oId, ClaimsPrincipal principal) : base(oId != Guid.Empty ? new GenericIdentity(oId.ToString()) : new GenericIdentity(id.ToString()), principal.Claims.Where(c => c.Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/role").Select(c => c.Value).ToArray()) { AppUserIdType appUserIdType = oId != Guid.Empty ? AppUserIdType.OidGuid : AppUserIdType.IdInteger; string displayName = string.Empty; Claim nameClaim = principal.Claims.Where(c => c.Type == "name").FirstOrDefault(); if (nameClaim != null && !string.IsNullOrEmpty(nameClaim.Value)) { displayName = nameClaim.Value; } { displayName = "User " + id.ToString(); } string primaryEmail = string.Empty; Claim emailClaim = principal.Claims.Where(c => c.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/email").FirstOrDefault(); if (emailClaim != null && !string.IsNullOrEmpty(emailClaim.Value)) { primaryEmail = emailClaim.Value; } this.UserInfo = new AppUserInfo(appUserIdType, id, oId, this.Identity.Name, displayName, primaryEmail); this.OriginalPrincipal = principal; }
/// <summary> /// Initializes a new instance of AppUserInfo class. /// </summary> public AppUserInfo(AppUserIdType userIdType, int id, Guid oid, string userName, string displayName, string primaryEmail) { this.UserIdType = userIdType; this.Id = id; this.Oid = oid; this.UserName = userName; this.DisplayName = displayName; this.PrimaryEmail = primaryEmail; }