public async Task <AuthenticateUserResultDto> AuthenticateUser(string connectionString, string userNameOrEmail, string password, int refreshTokenExpiry) { if (string.IsNullOrEmpty(connectionString)) { throw new ArgumentException("connection string not provided!"); } var printingBIDbContextFactory = new PrintingBIDbContextFactory(); var context = printingBIDbContextFactory.Create(connectionString); var user = context.PrinterBIUsers .FirstOrDefault(m => m.UserName.ToLower() == userNameOrEmail.ToLower() || m.Email.ToLower() == userNameOrEmail.ToLower()); if (user == null) { return new AuthenticateUserResultDto { IsAuthenticated = false, IsSuperAdmin = false, IsPasswordChange = false } } ; if (user.Password != password) { return new AuthenticateUserResultDto { IsAuthenticated = false, IsSuperAdmin = false, IsPasswordChange = false } } ; else { string refreshToken = Guid.NewGuid().ToString(); user.RefreshToken = refreshToken; user.RefreshTokenExpiryDate = DateTime.Now.AddMinutes(refreshTokenExpiry); context.PrinterBIUsers.Update(user); context.SaveChanges(); AuthenticateUserResultDto obj = new AuthenticateUserResultDto(); obj.IsAuthenticated = true; obj.RefreshToken = refreshToken; obj.Email = user.Email; obj.FullName = user.FullName; obj.UserName = user.UserName; obj.UserId = user.Id; if (user.DepartmentId.HasValue) { obj.DepartmentId = user.DepartmentId.ToString(); } if (user.RoleRightsId.HasValue) { obj.RoleRightsId = user.RoleRightsId.ToString(); } if (user.IsSuperAdmin) { obj.IsSuperAdmin = true; } else { obj.IsSuperAdmin = false; } if (user.IsPassChange) { obj.IsPasswordChange = true; } else { obj.IsPasswordChange = false; } return(obj); } }
private static List <ClaimModel> SetClaims(CustomerInitialInfoModel intialInfo, AuthenticateUserResultDto result) { return(new List <ClaimModel> { new ClaimModel(AuthConstants.DbServer, intialInfo.TenantDBServer), new ClaimModel(AuthConstants.DbName, intialInfo.TenantDBName), new ClaimModel(AuthConstants.DbUser, intialInfo.TenantDBUser), new ClaimModel(AuthConstants.DbPwd, intialInfo.TenantDBPassword), new ClaimModel(AuthConstants.PBAppId, intialInfo.ApplicationId), new ClaimModel(AuthConstants.PBUserName, intialInfo.PowerBIUserName), new ClaimModel(AuthConstants.PBPass, intialInfo.PowerBIUserPass), new ClaimModel(AuthConstants.WorkspaceID, intialInfo.WorkSpaceId), new ClaimModel(AuthConstants.IsSuperAdmin, result.IsSuperAdmin.ToString()), new ClaimModel(AuthConstants.FTabName, string.IsNullOrEmpty(intialInfo.FilterTableName) ? "" : intialInfo.FilterTableName), new ClaimModel(AuthConstants.FColumnName, string.IsNullOrEmpty(intialInfo.FilterColumnName) ? "" : intialInfo.FilterColumnName), new ClaimModel(AuthConstants.FUserColumname, string.IsNullOrEmpty(intialInfo.FilterUserColumnName) ? "" : intialInfo.FilterUserColumnName) }); }