Пример #1
0
        /// <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;
 }