Nie ukrywam że nie znam dobrze ASP.NETa, ale na oko:
<input type="password" asp-for="PasswordHash"/>|>Hasło<br />
Nie. Użytkownik ma tutaj wpisać zwykłe hasło, hashowanie powinno się dziać już po stronie serwera, przy rejestracji przez przekazanie hasła do UserManager.CreateAsync oraz przy logowaniu, używając CheckPasswordSignInAsync albo PasswordSignInAsync.
[HttpPost]
public async Task<IActionResult> Post([FromForm] AppUser appUser)
nie udawaj, że to user. Wyciągnij login i hasło jak zwykłe parametry i wyciągnij usera z bazy tak:
var user = UserManager.FindByNameAsync(userName);