Well you technically can, but why? Username and password is a unique pair. Are you controlling uniqueness of the business email? if you don't - you might have the same business email for different usernames.
If biz email is unique (like sql constraint) you probably can do something simple like this:
UserInfo ui = UserInfoProvider.GetUsers()
.Where(new WhereCondition()
.WhereEquals("BusinessEmail", txtEmailAddress.Text)
.Or()
.WhereEquals("UserName", txtEmailAddress.Text)
)
.TypedResult.AsEnumerable().FirstOrDefault();
var userName = ui?.UserName;
UserInfo userInfo = AuthenticationHelper.AuthenticateUser(userName , txtPassword.Text, SiteContext.CurrentSiteName);
But you have to take care of password reset functionality as well