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