public void PopulateManagerCredentialsLst()
        {
            lstCredentials.Items.Clear();

            if (ManagerId != null)
            {
                ManagerCredential.AssociateDetails(Manager);

                foreach (ManagerCredential _managerCredential in Manager.Credentials)
                {
                    lstCredentials.Items.Add(new ListItem(_managerCredential.Name, _managerCredential));
                }

                lstCredentials.Enabled       = true;
                lstCredentials.BackColor     = System.Drawing.Color.White;
                cboCredential.Enabled        = true;
                btnCredentialsNew.Enabled    = true;
                btnCredentialsDelete.Enabled = true;
            }
            else
            {
                lstCredentials.Enabled   = false;
                lstCredentials.BackColor = System.Drawing.SystemColors.Control;
                lstCredentials.Items.Add("The manager record must exist before associating credentials to it. Please save the record to complete this action.");
                cboCredential.Enabled        = false;
                btnCredentialsNew.Enabled    = false;
                btnCredentialsDelete.Enabled = false;
            }
        }
Esempio n. 2
0
        public bool LockUserAccount(LoginInfo login, PasswordPolicy passwordpolicy) //if incorect only
        {
            var isLocked                        = false;
            IManagerCredential crd              = new ManagerCredential();
            ILayoutManager     layoutManager    = new LayoutManager();
            IReviewCredential  ReviewCredential = new ReviewCredential();
            Guid tenantId                       = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);

            CredentialInfo usercredentialinfo = UserCredentailInfo(login);

            if (passwordpolicy.LockoutAttempt.Value != null)
            {
                int?userpermissablelockoutAttemptcount = 1;
                if (usercredentialinfo.InvalidAttemptCount == null || usercredentialinfo.InvalidAttemptCount == 0)
                {
                    usercredentialinfo.InvalidAttemptCount = 1;
                }
                userpermissablelockoutAttemptcount = Convert.ToInt32(passwordpolicy.LockoutAttempt.Value);
                if (usercredentialinfo.InvalidAttemptCount >= userpermissablelockoutAttemptcount)
                {//lock the user
                    IManagerCredential managecredential = new ManagerCredential();
                    managecredential.UpdateLockedStatus(tenantId, usercredentialinfo.CredentialId, true, usercredentialinfo.InvalidAttemptCount, DateTime.UtcNow);
                    isLocked = true;
                }
                else //invalid attempt count increses
                {
                    IManagerCredential managecredential = new ManagerCredential();
                    managecredential.UpdateLockedStatus(tenantId, usercredentialinfo.CredentialId, false, usercredentialinfo.InvalidAttemptCount + 1, null);
                }
            }
            return(isLocked);
        }
Esempio n. 3
0
        public Claim[] AuthenticateUser(LoginInfo login)
        {
            IManagerCredential crd           = new ManagerCredential();
            ILayoutManager     layoutManager = new LayoutManager();
            IManagerRole       roleManager   = new ManagerRole();

            if (string.IsNullOrEmpty(login.TenantCode) || string.IsNullOrEmpty(login.UserName) || string.IsNullOrEmpty(login.Password))
            {
                return(null);
            }

            //Get tenant id with code
            Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);

            if (tenantId == Guid.Empty)
            {
                return(null);
            }

            //Validate UserName
            var userId = crd.GetUserName(tenantId, login.UserName);

            if (userId == Guid.Empty)
            {
                return(null);
            }

            //Validate UserName
            var passwordSaved = crd.GetPassword(tenantId, login.UserName);

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

            // check if password is correct
            if (!VerifyPasswordHash(login.Password, Convert.FromBase64String(passwordSaved.PasswordHash), Convert.FromBase64String(passwordSaved.PasswordSalt)))
            {
                return(null);
            }
            //Get user detail

            var userDetails = roleManager.GetUserDetails(tenantId, userId);

            if (userDetails != null)
            {
                var claims = new[] {
                    new Claim("UserId", userDetails.Id.ToString()),
                    new Claim("UserName", userDetails.Name),
                    new Claim("TenantId", tenantId.ToString()),
                    new Claim("IsSuperAdmin", userDetails.IsSuperadmin.ToString()),
                    new Claim("IsSystemAdmin", userDetails.IsSystemAdmin.ToString()),
                    new Claim("Jti", Guid.NewGuid().ToString())
                };

                return(claims);
            }

            return(null);
        }
Esempio n. 4
0
        public bool checkAuthorization(dynamic login)
        {
            IManagerCredential crd           = new ManagerCredential();
            ILayoutManager     layoutManager = new LayoutManager();
            IManagerRole       roleManager   = new ManagerRole();

            // if (string.IsNullOrEmpty(login.TenantCode) || string.IsNullOrEmpty(login.UserName))
            // {
            //     return false;
            // }

            //Get tenant id with code
            Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);

            if (tenantId == Guid.Empty)
            {
                return(false);
            }
            //Validate UserName
            var userId = crd.GetUserName(tenantId, login.UserName);

            if (userId == Guid.Empty)
            {
                return(false);
            }

            return(true);
        }
Esempio n. 5
0
        public bool CheckIfLocked(LoginInfo login, PasswordPolicy passwordpolicy)
        {
            CredentialInfo usercredentialinfo = UserCredentailInfo(login);

            if (passwordpolicy.LockoutDuration.Value == null)
            {
                return(false);
            }
            if (usercredentialinfo.IsLocked)
            {
                //user was locked down now as time is over he is locked out
                if (DateTime.UtcNow > usercredentialinfo.LockedOn.AddMinutes(Convert.ToInt32(passwordpolicy.LockoutDuration.Value)))
                {
                    IManagerCredential managecredential = new ManagerCredential();
                    IManagerCredential crd              = new ManagerCredential();
                    ILayoutManager     layoutManager    = new LayoutManager();
                    IReviewCredential  ReviewCredential = new ReviewCredential();
                    Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);
                    var  userId   = crd.GetUserName(tenantId, login.UserName);
                    managecredential.UpdateLockedStatus(tenantId, usercredentialinfo.CredentialId, false, 0, null);
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            else
            {
                return(false);
            }
        }
Esempio n. 6
0
        // public  bool ChangePasswordSetIsNewAfterLogin(LoginInfo login)
        // {
        //     IManagerCredential crd = new ManagerCredential();
        //     ILayoutManager layoutManager = new LayoutManager();
        //     IManagerRole roleManager = new ManagerRole();

        //     if (string.IsNullOrEmpty(login.TenantCode) || string.IsNullOrEmpty(login.UserName))
        //     return false;
        //     //Get tenant id with code
        //     Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);
        //     if (tenantId == Guid.Empty)
        //     return false;
        //     //Validate UserName
        //     var userId = crd.GetUserName(tenantId, login.UserName);
        //     if (userId == Guid.Empty)
        //     return false;
        //     var userDetails = roleManager.GetUserDetails(tenantId, userId);
        //     if (userDetails.Id == Guid.Empty)
        //     return fase;
        //     var credentialData=crd.GetCredential(tenantId,userDetails.Id);
        //   return  crd.SetIsNew(tenantId, new CredentialInfo
        //     {
        //     CredentialId = credentialData.CredentialId,
        //     // ParentId=new Guid("E6C7AA71-3C94-46BF-A392-260A14667F95"),
        //     ParentId = userDetails.Id,
        //     UserName = "",
        //     PasswordHash = "",
        //     PasswordSalt = "",
        //     IsNew = true
        //     });
        // }

        //  private void SendMail(string parampass,Email emailTemplate,JObject data,Guid tenantId, Guid userId)
        //  {
        //      IMetadataManager _iMetadataManager = new VPC.Framework.Business.MetadataManager.Contracts.MetadataManager ();
        //     var emailSubType = _iMetadataManager.GetSubTypes ("email");
        //      IEntityResourceManager _iEntityResourceManager = new VPC.Framework.Business.EntityResourceManager.Contracts.EntityResourceManager ();
        //     dynamic jsonObject = new JObject ();
        //     jsonObject.Body = emailTemplate.Body.Value;
        //     jsonObject.Sender = "";
        //     jsonObject.Recipient = data["ContactInformation_Email"];
        //     jsonObject.Date = HelperUtility.GetCurrentUTCDate();
        //     jsonObject.Subject = emailTemplate.Subject;
        //      var superAdminId = _iEntityResourceManager.SaveResult (tenantId, userId, "email", jsonObject, emailSubType[0].Name.ToString ());

        public User UserInfo(ChangePasswordInfo changepassword)
        {
            IManagerCredential crd           = new ManagerCredential();
            ILayoutManager     layoutManager = new LayoutManager();
            IManagerRole       roleManager   = new ManagerRole();
            Guid tenantId    = layoutManager.GetTenantId(InfoType.Tenant, changepassword.TenantCode);
            var  userId      = crd.GetUserName(tenantId, changepassword.UserName);
            var  queryFilter = new List <QueryFilter>();

            queryFilter.Add(new QueryFilter {
                FieldName = "TenantId", Operator = "Equal", Value = tenantId.ToString()
            });
            queryFilter.Add(new QueryFilter {
                FieldName = "InternalId", Operator = "Equal", Value = userId.ToString()
            });
            var queryContext = new QueryContext {
                Fields = "FirstName,LastName", Filters = queryFilter, PageSize = 100, PageIndex = 1, MaxResult = 1
            };
            IEntityResourceManager _iEntityResourceManager = new VPC.Framework.Business.EntityResourceManager.Contracts.EntityResourceManager();
            User      userinfo = null;
            DataTable user     = _iEntityResourceManager.GetResult(tenantId, "User", queryContext);

            if (user.Rows.Count > 0)
            {
                userinfo = EntityMapper <User> .Mapper(user);
            }
            return(userinfo);
        }
Esempio n. 7
0
        public CredentialInfo UserCredentailInfo(LoginInfo login)
        {
            IManagerCredential crd           = new ManagerCredential();
            ILayoutManager     layoutManager = new LayoutManager();
            IManagerRole       roleManager   = new ManagerRole();
            Guid           tenantId          = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);
            Guid           userId            = crd.GetUserName(tenantId, login.UserName);
            CredentialInfo credentialData    = crd.GetCredential(tenantId, userId);

            return(credentialData);
        }
Esempio n. 8
0
        // public bool checkAccess(LoginInfo login)
        // {
        //     IManagerCredential crd = new ManagerCredential();
        //     ILayoutManager layoutManager = new LayoutManager();
        //     IManagerRole roleManager = new ManagerRole();

        //     if (string.IsNullOrEmpty(login.TenantCode) || string.IsNullOrEmpty(login.UserName))
        //     return false;
        //     //Get tenant id with code
        //     Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);
        //     if (tenantId == Guid.Empty)
        //     return false;
        //     //Validate UserName
        //     var userId = crd.GetUserName(tenantId, login.UserName);
        //     if (userId == Guid.Empty)
        //     return false;
        //     // var userDetails = roleManager.GetUserDetails(tenantId, userId);
        //     // if (userDetails.Id == Guid.Empty)
        //     // return false;
        //     var credentialData=crd.GetCredential(tenantId,userId);
        //     return credentialData.IsNew;
        // }

        public List <CredentialHistory> GetCredentialHistory(string tenentCode, string username, int count)
        {
            IManagerCredential crd              = new ManagerCredential();
            ILayoutManager     layoutManager    = new LayoutManager();
            IReviewCredential  ReviewCredential = new ReviewCredential();
            Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, tenentCode);
            Guid userId   = crd.GetUserName(tenantId, username);
            List <CredentialHistory> result = ReviewCredential.GetCredentialHistory(tenantId, userId, count);

            return(result);
        }
        private void btnCredentialsNew_Click(object sender, EventArgs e)
        {
            Guid stringMapId = new Guid(((ListItem)cboCredential.SelectedItem).HiddenValue);

            if (ManagerId != null)
            {
                ManagerCredential.Insert((Guid)ManagerId, stringMapId, frmMain_Parent.CurrentUser.UserId);
            }
            cboCredential.SelectedIndex = -1;

            PopulateManagerCredentialsLst();
        }
Esempio n. 10
0
        public bool ChangePasswordUpdateCredential(ChangePasswordInfo changepassword)
        {
            IManagerCredential crd           = new ManagerCredential();
            ILayoutManager     layoutManager = new LayoutManager();
            IManagerRole       roleManager   = new ManagerRole();

            if (string.IsNullOrEmpty(changepassword.TenantCode) || string.IsNullOrEmpty(changepassword.UserName) || string.IsNullOrEmpty(changepassword.OldPassword) || string.IsNullOrEmpty(changepassword.NewPassword))
            {
                return(false);
            }

            //Get tenant id with code
            Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, changepassword.TenantCode);

            if (tenantId == Guid.Empty)
            {
                return(false);
            }

            //Validate UserName
            var userId = crd.GetUserName(tenantId, changepassword.UserName);

            if (userId == Guid.Empty)
            {
                return(false);
            }

            //Validate UserName
            var passwordSaved = crd.GetPassword(tenantId, changepassword.UserName);

            if (passwordSaved == null)
            {
                return(false);
            }
            // check if password is correct
            if (!VerifyPasswordHash(changepassword.OldPassword, Convert.FromBase64String(passwordSaved.PasswordHash), Convert.FromBase64String(passwordSaved.PasswordSalt)))
            {
                return(false);
            }
            byte[] passwordHash, passwordSalt;
            CreatePasswordHash(changepassword.NewPassword, out passwordHash, out passwordSalt);
            CredentialInfo credentialData = crd.GetCredential(tenantId, userId);

            return(crd.Update(tenantId, new CredentialInfo
            {
                CredentialId = credentialData.CredentialId,
                ParentId = userId,
                UserName = changepassword.UserName,
                PasswordHash = Convert.ToBase64String(passwordHash),
                PasswordSalt = Convert.ToBase64String(passwordSalt),
                IsNew = false
            }));
        }
        private void btnCredentialsDelete_Click(object sender, EventArgs e)
        {
            if (lstCredentials.SelectedIndex == -1 || lstCredentials.SelectedItem == null)
            {
                MessageBox.Show("Error: No credential is selected for deletion. Please correct and try again.", "Error", MessageBoxButtons.OK);
                return;
            }

            ManagerCredential _managerCredential = (ManagerCredential)((ListItem)lstCredentials.SelectedItem).HiddenObject;

            _managerCredential.Delete();

            PopulateManagerCredentialsLst();
        }
Esempio n. 12
0
        public bool CreateCredential(Guid tenantId, Guid userGuid, LoginInfo login)
        {
            IManagerCredential crd = new ManagerCredential();

            if (string.IsNullOrEmpty(login.TenantCode) || string.IsNullOrEmpty(login.UserName) || string.IsNullOrEmpty(login.Password))
            {
                return(false);
            }

            //Get tenant id with code
            // Guid tenantId=new Guid("1C083115-7DB3-4B92-A449-D57FD1D2A52A");
            if (tenantId == null)
            {
                return(false);
            }

            //Validate UserName
            var userId = crd.GetUserName(tenantId, login.UserName);

            if (userId != Guid.Empty)
            {
                return(false);
            }

            //Validate UserName
            var passwordSaved = crd.GetPassword(tenantId, login.UserName);

            if (passwordSaved != null)
            {
                return(false);
            }

            byte[] passwordHash, passwordSalt;
            CreatePasswordHash(login.Password, out passwordHash, out passwordSalt);

            bool isnew = CheckResetOnFirstLogin(tenantId);

            return(crd.Create(tenantId, new CredentialInfo
            {
                CredentialId = Guid.NewGuid(),
                // ParentId=new Guid("E6C7AA71-3C94-46BF-A392-260A14667F95"),
                ParentId = userGuid,
                UserName = login.UserName,
                PasswordHash = Convert.ToBase64String(passwordHash),
                PasswordSalt = Convert.ToBase64String(passwordSalt),
                IsNew = isnew
            }));
        }
        private void InitCredential(Guid newTenantId, Guid userId)
        {
            var queryFilter = new List <QueryFilter>();
            SqlMembershipProvider sqlMembership  = new SqlMembershipProvider();
            PasswordPolicy        passwordpolicy = sqlMembership.getPasswordPolicy(newTenantId, true);
            IManagerCredential    crd            = new ManagerCredential();
            CredentialInfo        credentialData = crd.GetCredential(newTenantId, userId);
            var isnew = false;

            if (passwordpolicy != null)
            {
                isnew = passwordpolicy.ResetOnFirstLogin.Value;
            }
            crd.SetIsNew(newTenantId, new CredentialInfo
            {
                CredentialId = credentialData.CredentialId,
                ParentId     = credentialData.ParentId,
                IsNew        = isnew
            });
        }
Esempio n. 14
0
        public bool IsChangedPassEnabled(LoginInfo login)
        {
            IManagerCredential crd           = new ManagerCredential();
            ILayoutManager     layoutManager = new LayoutManager();
            Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);

            if (tenantId == Guid.Empty)
            {
                return(false);
            }
            //Validate UserName
            var userId = crd.GetUserName(tenantId, login.UserName);

            if (userId == Guid.Empty)
            {
                return(false);
            }
            var credentialData = crd.GetCredential(tenantId, userId);

            return(credentialData.IsNew);
        }
Esempio n. 15
0
        public bool ForgetPasswordUpdateCredential(LoginInfo login, PasswordPolicy passwordpolicy)
        {
            IManagerCredential crd           = new ManagerCredential();
            ILayoutManager     layoutManager = new LayoutManager();
            IManagerRole       roleManager   = new ManagerRole();

            if (string.IsNullOrEmpty(login.TenantCode) || string.IsNullOrEmpty(login.UserName))
            {
                return(false);
            }
            //Get tenant id with code
            Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);

            if (tenantId == Guid.Empty)
            {
                return(false);
            }
            //Validate UserName
            var userId = crd.GetUserName(tenantId, login.UserName);

            if (userId == Guid.Empty)
            {
                return(false);
            }
            byte[] passwordHash, passwordSalt;
            Random random = new Random();
            int    pass   = random.Next(1000000);

            //pass = 111;
            CreatePasswordHash(pass.ToString(), out passwordHash, out passwordSalt);
            var userDetails = roleManager.GetUserDetails(tenantId, userId);

            if (userDetails.Id == Guid.Empty)
            {
                return(false);
            }
            var credentialData = crd.GetCredential(tenantId, userDetails.Id);


            IMetadataManager iMetadataManager = new MetadataManager.Contracts.MetadataManager();
            var queryFilter = new List <QueryFilter>();

            queryFilter.Add(new QueryFilter {
                FieldName = "TenantId", Operator = "Equal", Value = tenantId.ToString()
            });
            queryFilter.Add(new QueryFilter {
                FieldName = "InternalId", Operator = "Equal", Value = userDetails.Id.ToString()
            });
            var queryContext = new QueryContext {
                Fields = "FirstName,LastName,MiddleName,ContactInformation.WorkEmail1", Filters = queryFilter, PageSize = 100, PageIndex = 1
            };
            //  var queryContext = new QueryContext { Fields = "FirstName,LastName", Filters = queryFilter, PageSize = 100, PageIndex = 1 };
            IEntityResourceManager _iEntityResourceManager = new VPC.Framework.Business.EntityResourceManager.Contracts.EntityResourceManager();
            var dataTableUser = _iEntityResourceManager.GetResultById(tenantId, "user", userDetails.Id, queryContext);
            var userEntity    = EntityMapper <VPC.Entities.EntityCore.Metadata.User> .Mapper(dataTableUser);

            var            jObject            = DataUtility.ConvertToJObjectList(dataTableUser);
            CredentialInfo usercredentialinfo = UserCredentailInfo(login);

            jObject[0].Add(new JProperty("UserCredential.Username", usercredentialinfo.UserName.ToString()));
            jObject[0].Add(new JProperty("UserCredential.Password", pass.ToString()));
            jObject[0].Add(new JProperty("TenantCode", login.TenantCode.ToString()));

            var emailTemplate = _iEntityResourceManager.GetWellKnownTemplate(tenantId, "emailtemplate", "user", (int)ContextTypeEnum.Forgotpassword, jObject[0]);

            if (emailTemplate != null && emailTemplate.Body != null)
            {
                var isnew = false;
                if (passwordpolicy != null)
                {
                    isnew = passwordpolicy.ResetOnFirstLogin.Value;
                }

                crd.Update(tenantId, new CredentialInfo
                {
                    CredentialId = credentialData.CredentialId,
                    ParentId     = userDetails.Id,
                    PasswordHash = Convert.ToBase64String(passwordHash),
                    PasswordSalt = Convert.ToBase64String(passwordSalt),
                    IsNew        = isnew
                });
                var returnVal = DataUtility.SaveEmail(tenantId, userDetails.Id, emailTemplate, usercredentialinfo.UserName.ToString(), "ForgetPassword", InfoType.User);
                // SendMail(pass.ToString(),emailTemplate,jdata[0],tenantId,userDetails.Id);
            }
            else
            {
                return(false);
            }

            return(true);
        }