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; } }
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); }
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); }
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); }
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); } }
// 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); }
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); }
// 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(); }
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(); }
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 }); }
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); }
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); }