public static void SetEntityPrincipal(this MongoDbEntity entity, System.Security.Claims.ClaimsPrincipal user)
        {
            var code  = user.FindFirst(c => c.Type == System.Security.Claims.ClaimTypes.NameIdentifier);
            var isNew = string.IsNullOrEmpty(entity.Id) || System.Guid.Empty.ToString() == entity.Id;
            var name  = user.FindFirst(c => c.Type == JwtClaimNamesConst.UseName);

            if (entity is MongoDbEntity esc)
            {
                if (isNew)
                {
                    esc.Id         = System.Guid.NewGuid().ToString();
                    esc.CreateAt   = DateTime.Now;
                    esc.CreateBy   = code?.Value;
                    esc.DataStatus = DataStatusEnum.Valid;
                }

                if (entity is MongoDbEntityWithCreateAndByName ewcn)
                {
                    ewcn.CreateByName = name?.Value;
                }

                if (entity is MongoDbEntityWithUpdate escu)
                {
                    escu.UpdateAt = DateTime.Now;
                    escu.UpdateBy = code?.Value;
                }

                if (entity is MongoDbEntityWithUpdateAndByName esun)
                {
                    esun.CreateByName = name?.Value;
                    esun.UpdateByName = name?.Value;
                }
            }
        }
示例#2
0
        public GraphUserAccount(System.Security.Claims.ClaimsPrincipal claimsPrincipal)
        {
            this.Email    = claimsPrincipal.FindFirst("preferred_username")?.Value;
            this.ObjectId = claimsPrincipal.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier")?.Value;
            this.TenantId = claimsPrincipal.FindFirst("http://schemas.microsoft.com/identity/claims/tenantid")?.Value;

            this.Username      = this.Email;
            this.Environment   = "login.windows.net";
            this.HomeAccountId = new AccountId($"{this.ObjectId}.{this.TenantId}", this.ObjectId, this.TenantId);
        }
示例#3
0
        public List <Khachhang> GetKhachhangs(System.Security.Claims.ClaimsPrincipal user)
        {
            string Manhanvien = user.FindFirst("Manhanvien").Value;
            string Madonvi    = user.FindFirst("Madonvi").Value;
            List <Nhanvienkhachhang> nhanvienkhachhangs = db.Nhanvienkhachhangs.Where(d => d.Madonvi == Madonvi && d.Manhanvien == Manhanvien).ToList();
            List <Khachhang>         dsKhachhang        = db.Khachhangs.Where(d => d.Madonvi == this.Madonvi && d.Trangthai == 1 && d.Maloaikhach == "KH" || d.Maloaikhach == "KHNCC").ToList();

            dsKhachhang = (from kh in dsKhachhang
                           join nvkh in nhanvienkhachhangs on kh.Makhachhang equals nvkh.Makhachhang
                           select(kh)
                           ).ToList();
            return(dsKhachhang);
        }
示例#4
0
        public static void SetEntityPrincipal(this object value, System.Security.Claims.ClaimsPrincipal user)
        {
            var code    = user.FindFirst(c => c.Type == System.Security.Claims.ClaimTypes.NameIdentifier);
            var organId = user.FindFirst(c => c.Type == JwtClaimNamesConst.Org);

            if (value is EntitySet t)
            {
                var isNew = t.IsNullOrEmpty();
                if (value is EntitySetWithCreate esc)
                {
                    if (isNew)
                    {
                        esc.CreateAt   = DateTime.Now;
                        esc.CreateBy   = code?.Value;
                        esc.DataStatus = DataStatusEnum.Valid;
                    }

                    if (value is EntitySetWithCreateAndUpdate escu)
                    {
                        escu.UpdateAt = DateTime.Now;
                        escu.UpdateBy = code?.Value;
                    }

                    if (value is EntitySetWithAllStatus ess)
                    {
                        if (isNew)
                        {
                            Guid?organizationId = null;
                            if (!string.IsNullOrEmpty(organId?.Value) && Guid.TryParse(organId?.Value, out Guid tempId))
                            {
                                organizationId = tempId;
                            }

                            ess.CreateByOrganizationId = organizationId;
                        }

                        if (ess.ApprovalStatus == ApproveStatusEnum.Auditing)
                        {
                            ess.SubmitAt = DateTime.Now;
                        }
                    }
                }
            }
        }
示例#5
0
        public static Guid GetPersonId(System.Security.Claims.ClaimsPrincipal user)
        {
            // var userId = (from c in user.Claims
            //               where c.Type == "Id"
            //               select c.Value).FirstOrDefault();

            var userId = user.FindFirst("Id").Value;

            return(Guid.Parse(userId));
        }
        public static ContentFileModel GetModel(System.Security.Claims.ClaimsPrincipal user, string content, string commitMessage)
        {
            var userName  = user?.FindFirst(x => x.Type.Equals(IdentityModel.JwtClaimTypes.Name))?.Value ?? "Alan Sellers";
            var userEmail = user?.FindFirst(x => x.Type.Equals(IdentityModel.JwtClaimTypes.Email))?.Value ?? "*****@*****.**";

            return(new ContentFileModel()
            {
                message = commitMessage,
                content = Utils.EncodeBase64(content),
                branch = "master",
                committer = new UserInfoModel()
                {
                    name = userName,
                    email = userEmail
                },
                author = new UserInfoModel()
                {
                    name = userName,
                    email = userEmail
                }
            });
        }
示例#7
0
        public void AddUserEvent(int eventType, System.Security.Claims.ClaimsPrincipal user, string searchText = "", string searchResults = "", int movieID = 0)
        {
            if (eventType == 0)
            {
                UserEvents.Add(new UserEvent
                {
                    UserName     = user.FindFirst(System.Security.Claims.ClaimTypes.Name).Value,
                    SearchTerms  = searchText,
                    SearchResult = searchResults,
                    EventDate    = System.DateTime.Now
                });
            }
            if (eventType == 1)
            {
                UserEvents.Add(new UserEvent
                {
                    UserName    = user.FindFirst(System.Security.Claims.ClaimTypes.Name).Value,
                    MovieRental = movieID,
                    EventDate   = System.DateTime.Now
                });
            }

            SaveChanges();
        }
示例#8
0
        internal IEnumerable <Mathanggia> getProducts(System.Security.Claims.ClaimsPrincipal user)
        {
            string Manhanvien = user.FindFirst("Manhanvien").Value;
            IEnumerable <Nganhnhom> nganhnhoms = categorysManage.getCategory(Manhanvien);
            DataTable dataMathang = DB.Getdata_VTHH_MATHANG(DB.XNT_TABLENAME(PublicValue.ngayPhatSinh), this.Madonvi, this.DataBaseXnt, 1);

            dataMathang = (from mh in dataMathang.AsEnumerable()
                           join pq in nganhnhoms on mh["Manhomhang"] equals pq.Ma
                           select(mh)
                           ).CopyToDataTable();


            List <Mathanggia> listMathhang = LIB.ConvertDataTable <Mathanggia>(dataMathang).ToList();

            return(listMathhang.AsEnumerable <Mathanggia>());
        }
示例#9
0
        private static string GetClaim(string claim, System.Security.Principal.IPrincipal IPrincipal)
        {
            if (typeof(System.Security.Claims.ClaimsPrincipal).IsInstanceOfType(IPrincipal))
            {
                System.Security.Claims.ClaimsPrincipal _principal = (IPrincipal as System.Security.Claims.ClaimsPrincipal);
                Security.Claims.Claim _claim = _principal.FindFirst(claim);

                if (_claim != null)
                {
                    return(_claim.Value);
                }
                else
                {
                    throw new Gale.Exception.GaleException("SECURITY_CLAIMS_NOT_FOUND");
                }
            }
            else
            {
                throw new Gale.Exception.GaleException("SECURITY_CLAIMS_NOT_IMPLEMENTED");
            }
        }
示例#10
0
        public async Task <LoggedOutViewModel> BuildLoggedOutViewModelAsync(string logoutId)
        {
            // get context information (client name, post logout redirect URI and iframe for federated signout)
            IdentityServer4.Models.LogoutRequest logout = await this._interaction.GetLogoutContextAsync(logoutId);

            LoggedOutViewModel vm = new LoggedOutViewModel {
                AutomaticRedirectAfterSignOut = AccountOptions.AutomaticRedirectAfterSignOut,
                PostLogoutRedirectUri         = logout?.PostLogoutRedirectUri,
                ClientName       = logout?.ClientId,
                SignOutIframeUrl = logout?.SignOutIFrameUrl,
                LogoutId         = logoutId
            };

            System.Security.Claims.ClaimsPrincipal user = this._httpContextAccessor.HttpContext.User;
            if (user?.Identity.IsAuthenticated == true)
            {
                string idp = user.FindFirst(JwtClaimTypes.IdentityProvider)?.Value;
                if (idp != null && idp != IdentityServer4.IdentityServerConstants.LocalIdentityProvider)
                {
                    bool providerSupportsSignout = await this._httpContextAccessor.HttpContext.GetSchemeSupportsSignOutAsync(idp);

                    if (providerSupportsSignout)
                    {
                        if (vm.LogoutId == null)
                        {
                            // if there's no current logout context, we need to create one
                            // this captures necessary info from the current logged in user
                            // before we signout and redirect away to the external IdP for signout
                            vm.LogoutId = await this._interaction.CreateLogoutContextAsync();
                        }

                        vm.ExternalAuthenticationScheme = idp;
                    }
                }
            }

            return(vm);
        }
示例#11
0
        public static Guid?GetCustomerGuid(this System.Security.Claims.ClaimsPrincipal claimsPrincipal)
        {
            // Parse customer GUID out of the identity's claims.
            var customerGuidClaim = claimsPrincipal.FindFirst(System.Security.Claims.ClaimTypes.NameIdentifier);

            if (customerGuidClaim == null)
            {
                return(null);
            }

            if (String.IsNullOrEmpty(customerGuidClaim.Value))
            {
                return(null);
            }

            Guid parsedCustomerGuid;

            if (!Guid.TryParse(customerGuidClaim.Value, out parsedCustomerGuid))
            {
                return(null);
            }

            return(parsedCustomerGuid);
        }
示例#12
0
        public UserIdentityServer(System.Security.Claims.ClaimsPrincipal claims)
        {
            NBF       = claims.FindFirst("nbf").Value;
            EXP       = claims.FindFirst("exp").Value;
            ISS       = claims.FindFirst("iss").Value;
            Client_Id = claims.FindFirst("client_id").Value;
            SUB       = claims.FindFirst("sub").Value;
            Auth_Time = claims.FindFirst("auth_time").Value;

            AUD = new List <string>();
            foreach (var claim in claims.FindAll("AUD"))
            {
                AUD.Add(claim.Value);
            }

            Scope = new List <string>();
            foreach (var claim in claims.FindAll("scope"))
            {
                Scope.Add(claim.Value);
            }
        }
示例#13
0
        public static string GetCode(this System.Security.Claims.ClaimsPrincipal claimsPrincipal)
        {
            var user = claimsPrincipal.FindFirst(c => c.Type == System.Security.Claims.ClaimTypes.NameIdentifier);

            return(user.Value);
        }
示例#14
0
 public static string GetUsername(this System.Security.Claims.ClaimsPrincipal user) =>
 user.FindFirst(x => x.Type == "cognito:username").Value;